Skip to content

Agent plugin side-cars use raw scene ids in filesystem paths (transcripts + wire capture) #370

Description

@jeqcho

Found during plan 0067 review (see plans/0067-durable-action-log.md, Design → File layout).

LLMAgentPolicy builds side-car paths from the raw scene id in two places:

  • on_trial_start passes f"{scene_id}-e{epoch}" raw to _capture.begin_trial (wire capture path)
  • on_trial_end writes transcripts/<run_id>/{scene_id}-e{epoch}.jsonl with the raw id

Scene.id is unvalidated task-author input, so a hostile or merely unusual id (path separators, ..) lands directly in a filesystem path. Core's FrameStore already solves this with _safe (unsafe-run substitution + crc32 suffix so distinct ids can't collide), and plan 0067's actions/ side-car reuses it — the plugin's two paths should too.

Low urgency: every in-tree task uses tame ids today. But it's two call sites and the helper already exists.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions