Skip to content

parse: derive row titles from prompts, not instruction files or path drops - #15

Merged
yrstm merged 1 commit into
mainfrom
fix/task-titles
Jul 21, 2026
Merged

parse: derive row titles from prompts, not instruction files or path drops#15
yrstm merged 1 commit into
mainfrom
fix/task-titles

Conversation

@yrstm

@yrstm yrstm commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Defect

Row titles took the first user message verbatim. Codex embeds AGENTS.md as every rollout's first user message → every codex row titled # AGENTS.md instructions for …. Claude sessions opened by a file drop titled as the dropped path (/tmp/…-drop-….md - re…). The board's WORK column was unscannable — observed live on the devbox board and in the mac app's deck.

Fix

parse.TitleFrom replaces the bare usableTitle gate at all three capture sites (claude text, codex event_msg, codex response_item parts):

  • messages opening like a markdown document (# headers, code fences) are rejected — the next user message (the real prompt) titles the row;
  • leading file-drop path tokens plus joining punctuation are trimmed: /tmp/notes.md - review thisreview this; a message that is only paths titles nothing;
  • ordinary prompts pass through unchanged, including paths mid-sentence (fix /code/foo/bar.go please) and numbered-list openers.

Labels and summaries still take precedence, unchanged. Same task/title_user fields — no --json shape change. README's "TASK" derivation paragraph updated.

Evidence

  • Unit: TestTitleFrom table + TestTitleUserSkipsInstructionFilesAndDrops (codex instructions-then-prompt, claude drop-then-request).
  • Live (shadow HOME against the real session stores, fresh cache): both codex rows now title review the synth app and veri… / Read SPEC.md and ROADMAP.md. …; the drop-opened claude row titles review this and help me with ….
  • Local gates all green: go test ./... -race, FuzzApply 20s, tools/parity.sh, bats tests/, golangci-lint 0 issues, vet, darwin build.

Note for a follow-up (not this PR)

While A/B-ing cached vs fresh scans, CTX%% for unchanged files differed (e.g. 16%% cached vs 80%% fresh on an 8d-idle session) — the incremental cache looks like it can hold a stale ctx. Filed in the session report as a D-round candidate.

🤖 Generated with Claude Code

…drops

The title took the first user message verbatim. Codex rollouts embed
AGENTS.md as their first user message, so every codex row was titled
'# AGENTS.md instructions for …'; claude sessions opened by a file drop
titled as the dropped path.

TitleFrom replaces the bare usableTitle gate at all three capture
sites: messages that open like a markdown document (# headers, code
fences) are rejected in favor of a later message, and leading
file-drop path tokens (plus joining punctuation) are trimmed so
'/tmp/notes.md - review this' titles as 'review this'. A message that
is only paths titles nothing. Ordinary prompts, including ones that
mention paths mid-sentence or start with a numbered list, pass through
unchanged. README documents the derivation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yrstm
yrstm merged commit 2dc7abb into main Jul 21, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant