You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pm init writes two status registries that disagree: settings.json's embedded schema.statuses omits in_progress's alias while schema/statuses.json declares it #828
pm --version 2026.7.29. Surfaced by a code reviewer on a fresh tracker and confirmed to be systematic.
What happens
pm init writes the status registry in two places, and they disagree about aliases.
.agents/pm/settings.json carries an embedded schema.statuses array and a schema.files.statuses pointer to schema/statuses.json. For in_progress, the canonical file declares an alias and the embedded copy does not:
Note canceleddoes carry ["cancelled"] in both — so the embedded copy is not simply alias-free, it is alias-incomplete. That asymmetry is what makes it look like a bug rather than a deliberate projection.
Systematic, not local
Checked four independently initialized trackers of different ages (three fleet package repos plus a companion repo):
tracker
settings.json
schema/statuses.json
pm-web
null
["in-progress"]
pm-github
null
["in-progress"]
pm-graph
null
["in-progress"]
companion
null
["in-progress"]
All four agree with each other and disagree internally, so this is what pm init emits rather than drift introduced by a user.
Why it matters
Not a functional break as far as I can tell — pm update <id> --status in-progress resolves fine, so the canonical file is evidently the one the resolver reads. The cost is review noise and a bad repair incentive:
A reviewer comparing the two files reports it as a data-integrity finding (this is exactly how I found it).
The obvious "fix" is to hand-edit settings.json to add the alias. That is the wrong move — settings.json is history-audited, and the next pm init or pm schema mutation regenerates it anyway — but nothing in the file says so.
Suggested fix
Either make the embedded schema.statuses block a faithful mirror of schema/statuses.json (including aliases), or omit aliases from the embedded copy entirely for all statuses so it reads as a deliberate summary rather than an incomplete duplicate. The current state — one status with aliases, another without, for no visible reason — is the only version that reads as a defect.
If the embedded block is a cache rather than a source, saying so in a comment or a "_generated"-style marker would stop reviewers (human and automated) from filing this repeatedly.
Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.
Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your .coderabbit.yaml:
issue_enrichment:
auto_enrich:
enabled: false
💬 Have feedback or questions? Drop into our discord!
Tracked canonically as pm-62n4kk after an all-status duplicate search. The PM item records scope, acceptance criteria, lineage, and this GitHub intake; it remains open and unclaimed until actively implemented.
Activity
coderabbitai commentedon Jul 30, 2026
🔗 Related PRs
#51 - Polish CLI ergonomics, delete safety, and templates dedup [closed]
#146 - fix: agent never-block reliability, MCP/version coherence, and CI/docs hardening [closed]
#431 - Add SDK boundary inventory ratchet [merged]
#491 - Harden init target safety and package install verification [merged]
#712 - SDK context integrity: atomic Plans, batch similarity, sparse settings, and tombstones [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
unbraind commentedon Jul 30, 2026
Tracked canonically as pm-62n4kk after an all-status duplicate search. The PM item records scope, acceptance criteria, lineage, and this GitHub intake; it remains open and unclaimed until actively implemented.