Development record
A run's state.json stores text that legitimately carries repository or tool content, unchecked at read time and echoed on abcd implement status --json and implement record --json: spec step titles (stored raw from the spec), the pick text and excluded reasons, record notes quoting step titles and git errors, kept (git error text), sync paths (repository file names), the landing's forge URL, the runner's reported model and transcripts; ids, shas, stages, branch and worktree names, paths, verdict words and audit fields are unchecked too, though abcd writes clean values there. Refusing at read time would refuse runs abcd itself wrote (a spec in a right-to-left language, a coloured hook failure), so the fix needs a design choice: mask such text where it is stored, or refuse at read time and accept false refusals.
A run's state.json stores text that legitimately carries repository or tool content, unchecked at read time and echoed on abcd implement status --json and implement record --json: spec step titles (stored raw from the spec), the pick text and excluded reasons, record notes quoting step titles and git errors, kept (git error text), sync paths (repository file names), the landing's forge URL, the runner's reported model and transcripts; ids, shas, stages, branch and worktree names, paths, verdict words and audit fields are unchecked too, though abcd writes clean values there. Refusing at read time would refuse runs abcd itself wrote (a spec in a right-to-left language, a coloured hook failure), so the fix needs a design choice: mask such text where it is stored, or refuse at read time and accept false refusals.
Security scope (abcd-fixes-what-it-adds): the route does not exist without abcd. The text is echoed by abcd's own --json surface, so abcd added the route and fixes it at the boundary the text enters by; a fix changes nothing about how the repository works.
Frontmatter
| id | iss-2610121542240257 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610121542240257-a-run-s-state-json-stores-text-that.md
open on GitHub ↗ · commit history ↗
mentions1
- dcn-26101200000000012026-10-12 — Repository and tool text the implement loop keeps in a run's state.json (step titles, pick text, record notes, kept, sync paths, the landing URL, the runner's model, transcripts) is masked with termsafe both where the loop stores it and at every render that shows it, never refused at read time, so a run abcd wrote stays readable (the person's ruling as technical facilitator, "both: mask when stored and when shown"; iss-2610121542240257).