Skip to content

parse: bump ParserV for the title change; ignore <synthetic> model ids - #18

Merged
yrstm merged 1 commit into
mainfrom
fix/parserv-synthetic
Jul 21, 2026
Merged

parse: bump ParserV for the title change; ignore <synthetic> model ids#18
yrstm merged 1 commit into
mainfrom
fix/parserv-synthetic

Conversation

@yrstm

@yrstm yrstm commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Defects (both caught verifying the D round on the devbox)

  1. The title fix couldn't reach quiet files. parse: derive row titles from prompts, not instruction files or path drops #15 changed how an existing field is derived without bumping ParserV, so entries scanned by an older binary (fully scanned, junk title, same v:6) were trusted forever. Field case that surfaced it: a stale agentdash -w running since before the upgrade rewrote the cache with old-parser entries every refresh tick, and the new binary accepted every one. ParserV → 7 forces the one-time rescan; the constant's comment now says derivation changes, not just new fields, warrant a bump.
  2. <synthetic> in the MODEL column. System-generated claude messages carry model "<synthetic>", which displaced the session's real model (a live row rendered <syntheti…). Now ignored; a session with only synthetic messages reports no model.

Evidence

  • TestOldParserVersionEntryIsRescanned replays the stale-watcher case (old-V entry with junk title, unchanged file → rescanned, correct title).
  • TestSyntheticModelDoesNotDisplaceReal covers both orders and the synthetic-only case.
  • Live: fresh scans by the fixed binary title correctly (verified before this PR); the cache war stops once the old watcher exits and v6 entries age out on first read.
  • Local gates green: go test ./... -race, fuzz 15s, vet, golangci 0 issues, parity, bats, darwin build.

🤖 Generated with Claude Code

The title-derivation change shipped without a ParserV bump, so entries
scanned by an older binary — fully scanned, junk title, same version —
were trusted forever; a file that stopped growing never re-titled. The
field case: a stale `agentdash -w` from before the upgrade kept
rewriting the cache with old-parser entries every tick, and the new
binary accepted them. v7 forces the one-time rescan; derivation
changes, not just new fields, now warrant a bump (comment updated).

Also: "<synthetic>" — the model id on system-generated claude
messages — no longer displaces the session's real model (a board row
rendered "<syntheti…" in the MODEL column).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yrstm
yrstm merged commit aa1a244 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