Skip to content

(Claude) A date-filtered provider run should write a view of its window too #404

Open

Description

@cboos

PR #403 (for #397) makes a date-filtered run of Claude Code transcripts write a view of its window:

  • the index lists only the projects and sessions the window shows, with the window's totals;
  • the run writes only into a destination that holds none of its pages, or over them with --force, removing nothing;
  • a view written outside the project's own directory leaves the render cache's rows alone.

The provider path (render_provider_wholesale, e.g. --provider codex, or a directory of rollouts) was left out of that change. Its date-filtered run still:

  • lists every project and session in its index;
  • writes over whatever is at the destination;
  • does not accept --force, which is rejected there with a usage error for now.

Proposal

Apply the same rules to the provider path. The pieces from PR #403 are in converter.py:

  • window_session_ids, the one reading of which sessions a window shows;
  • _project_window_view and _window_project_summary, for the index cards;
  • _window_view_files and WindowOutputExists, for the destination check.

The provider path groups sessions into projects by cwd and keeps its own cache under the output root. So the check, the index and the cache rule would sit in render_provider_wholesale, and --force would then be accepted there.

To check

  • Whether the provider path's cache marks pages written from a window as stale. If it does, the same in-place/elsewhere rule applies.
  • Its --clear-output with a date filter currently clears and then regenerates the filtered view. With the destination check, that sequence produces an empty destination, which passes the check without --force.

🤖 Generated with Claude Code

Activity

  1. cboos commented on Nov 8, 2026

    @cboos
    CollaboratorAuthor

    (Claude) One more thing to check when the provider path gets its window view, noted while reviewing #403 (from reading the code, not run).

    Since #403, a date-filtered --all-projects run's recent page lists the window's sessions by (project path, session id) (RecentWindow.sessions in claude_code_log/recent.py), taken from the index's project cards, and looks them up in the cache's sessions table by projects.project_path (_window_session_rows). A provider project's card carries "path": dest_dir, its output directory (claude_code_log/converter.py, in the provider branch of the hierarchy pass), not a source directory. If provider sessions do sit in the sessions table, their key never matches, and a windowed run's recent page would leave them out without a word. Before #403 the recent page listed them by the clock.

    Worth one look, and a test with a provider project in the window, as part of this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions