App: a per-task "Outputs" panel collecting every file the task created or modified, with inline previews

Open 💬 0 comments Opened Aug 25, 2026 by tofunori

What variant of Codex are you using?

App (macOS desktop, ChatGPT.app 26.818.61809, Darwin 25.5.0 arm64)

What feature would you like to see?

A panel in the App, scoped to the current task, that lists every file the task
created or modified in the workspace, and previews the previewable ones in place.

Today the App answers "what did the model change in the source?" through the diff
view, and answers it well. It does not answer "what did this task produce?".
Those are different questions as soon as a task emits anything that is not source
code. A .png figure, a compiled .pdf, a .csv export, an .html report: the
diff view shows a binary blob or nothing at all, yet those files are the actual
deliverable. Finding them means reading the transcript for paths, switching to a
file manager or terminal, and opening each one in a separate application. The
context of the task is lost at exactly the moment the result should be judged.

Proposed behavior:

  • Collect the file set automatically from the writes the task actually performed

(file-editing tool calls and shell commands), so nothing depends on the model
remembering to announce its outputs. Deriving the set from git status or the
staged diff would be the wrong source: generated artifacts are frequently
untracked or gitignored, which is exactly when they need surfacing.

  • Group by kind (images, documents, data, code, other) and sort by write time,

most recent first.

  • Preview in place:
  • images (PNG, JPG, SVG, WebP) rendered inline
  • PDF in an embedded viewer
  • CSV/TSV rendered as a table, first N rows, with column headers
  • everything else as a clickable row that reveals the file or opens it in the

default application

  • Keep the panel attached to the task, so it stays browsable after the task ends.

Noise control matters for this to be usable, but .gitignore is the wrong filter
here. Generated outputs are commonly gitignored precisely because they are
generated, so an outputs/ or figures/ directory would be hidden by the one rule
that looks most obvious. Excluding well-known cache and build-noise patterns
(__pycache__, .pytest_cache, node_modules, .venv, .git, editor swap
files) filters the real noise without swallowing deliverables. A per-kind collapse
and a "created" versus "modified" distinction would help on tasks that touch
hundreds of files, and a user-editable ignore list would cover the rest.

Additional information

Use case: a graduate research repository. A typical task queries a DuckDB
database, writes a Parquet or CSV extract, fits a statistical model, emits a
matplotlib figure as PNG and PDF, and updates a LaTeX manuscript that compiles to
another PDF. Six or seven artifacts land in five different directories, and the
only one the diff view renders usefully is the .tex edit. Judging whether the
task succeeded means judging the figure, so the figure is what needs to be one
click away.

This generalizes past scientific work: data analysis, report generation, design
and asset pipelines, document conversion, build outputs, screenshot-based test
runs. Any workflow whose result is a file rather than a code change hits the same
wall.

Related but distinct:

  • #34701 asks for a project file tree in the sidebar. That is a static view of the

repository, not a record of what a given task emitted.

  • #29451 asks for inline image previews in the TUI. Same motivation, different

surface, and limited to images.

  • #33358 asks for downloading generated workspace files to the phone, which

implies the same underlying "files this task produced" set on the mobile remote.

  • #30919 asks for a Git workspace view with a changed-file explorer, which covers

tracked source changes rather than emitted artifacts.

View original on GitHub ↗