docs: v1.1 hardening todo audit cleanup and Phases 59-60 mapping#552
Conversation
A 2026-06-23 evidence-based audit of pending todos (with adversarial re-checks) found these were silently fixed by merged PRs but never moved out of pending: - extract leaf IpfsProviderModule (#541) - extract withCidLock + refcountAndMaybeUnpin unpin primitive (#541) - LocalProvider unescaped CID in pin/cat URLs (#541) - RegisterCidDto validation divergence (#541) - PR538 second CodeRabbit pass, 6 findings (#543) - zeroize fuse metadata/publish key params (#543) Each archived file is annotated with the resolving PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: e00a186326bd
These two were captured in the older no-frontmatter format (opening with a # heading), so the gsd-tools parser could not read their title/area/date and --list rendered them as "Untitled / general / unknown". Add proper YAML frontmatter (title, area, severity, source, files) matching the other todos. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: 4ffb574fd4ae
|
Warning Review limit reached
More reviews will be available in 33 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses rolling per-developer review limits. Reviews become available again as older review attempts age out of the rolling limit window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (13)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The resolution notes were dropped from the archive commit by the lint-staged partial-staged hide/restore during the git mv. Re-add them as a plain content commit (PR #541 / #543 attribution on each archived file). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: e885ae5d4daa
Release PreviewNo version bumps detected. All changes are in unversioned paths or use exempt commit types. |
Greptile SummaryThis is a planning-only housekeeping PR: it archives 6 todos already silently resolved by PRs #541 and #543, adds YAML frontmatter to two previously-unformatted pending todos, and maps out two new hardening phases (59–60) across REQUIREMENTS.md, ROADMAP.md, and STATE.md.
Confidence Score: 4/5Safe to merge after adding the two missing phase rows to the ROADMAP.md progress table — all other changes are straightforward and internally consistent. The progress table in ROADMAP.md tracks every phase from 18 through 58 but omits the newly added Phase 59 and 60, leaving it in a directly contradictory state with the narrative and execution order in the same file. Every existing Planned phase (52–54) has table rows, so this is a genuine oversight rather than a deliberate choice. .planning/ROADMAP.md — the progress table needs rows for Phase 59 and 60. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
P56[Phase 56\nFUSE & IPNS Durability Hardening\nHARD-07 ✅]
P58[Phase 58\nIPNS Signature-Verify Coverage\nHARD-09 ✅]
P59[Phase 59\nFUSE IPNS Verify/Publish Hardening\nHARD-10 🆕 Planned]
P60[Phase 60\nIPNS Verification Cross-Layer Closeout\nHARD-11 🆕 Planned]
P56 -->|FUSE durability baseline| P59
P58 -->|resolve_ipns_verified chokepoint| P59
P58 -->|verified chokepoint| P60
P59 -->|unified first-publish sequence convention| P60
subgraph Archived Todos [Archived to completed/]
T1[Extract leaf IpfsProviderModule → PR #541]
T2[withCidLock unpin primitive → PR #541]
T3[LocalProvider unescaped CID → PR #541]
T4[RegisterCidDto validation → PR #541]
T5[PR538 CodeRabbit pass → PR #543]
T6[Zeroize FUSE key params → PR #543]
end
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
P56[Phase 56\nFUSE & IPNS Durability Hardening\nHARD-07 ✅]
P58[Phase 58\nIPNS Signature-Verify Coverage\nHARD-09 ✅]
P59[Phase 59\nFUSE IPNS Verify/Publish Hardening\nHARD-10 🆕 Planned]
P60[Phase 60\nIPNS Verification Cross-Layer Closeout\nHARD-11 🆕 Planned]
P56 -->|FUSE durability baseline| P59
P58 -->|resolve_ipns_verified chokepoint| P59
P58 -->|verified chokepoint| P60
P59 -->|unified first-publish sequence convention| P60
subgraph Archived Todos [Archived to completed/]
T1[Extract leaf IpfsProviderModule → PR #541]
T2[withCidLock unpin primitive → PR #541]
T3[LocalProvider unescaped CID → PR #541]
T4[RegisterCidDto validation → PR #541]
T5[PR538 CodeRabbit pass → PR #543]
T6[Zeroize FUSE key params → PR #543]
end
|
Adds two ROADMAP phases extending the v1.1 hardening block, sourced from the 2026-06-23 pending-todo audit and clustering: - Phase 59 FUSE IPNS Verify/Publish Hardening and Cleanup (HARD-10) — the Phase 56/58 FUSE long-tail: 2 partial HARD-07 residuals + VerifyError::Legacy + CAS/content_ops dead-code cleanup + first-publish sequence convention. - Phase 60 IPNS Verification Cross-Layer Closeout, Desktop and API (HARD-11) — desktop verified-resolve coverage + API hot-path verify caching. Adds HARD-10/HARD-11 to REQUIREMENTS.md, extends the execution order, logs both in STATE.md Roadmap Evolution, and creates the phase directories. Plans are deferred to /gsd:plan-phase. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: 2684f3a69532
What
v1.1 hardening todo-backlog housekeeping + forward planning (planning docs only, no code changes):
1. Archive 6 todos already resolved by merged PRs
A 2026-06-23 evidence-based audit of all pending todos (each verdict double-checked by an independent adversarial agent) found these were silently fixed but never moved out of
pending/:withCidLock+refcountAndMaybeUnpinunpin primitiveEach archived file is annotated with the resolving PR. The audit also flagged two as partially resolved (FUSE inode stable-ID reset, FUSE/IPNS robustness) — kept in pending with their residual scope.
2. Fix frontmatter on two todos
They were captured in the older no-frontmatter format, so
gsd-capture --listshowed them asUntitled / general / unknown. Added proper YAML frontmatter.3. Map out Phases 59 + 60 (extends the v1.1 hardening block)
From clustering the cleaned backlog (pending: 27 → 21):
VerifyError::Legacycarrying the legacy response, CAS/content_opsdead-code cleanup, and unifying the first-publish embedded-sequence convention.resolve_ipnssites through the verified resolver, and recover API hot-path verification CPU via a safe short-circuit / short-TTL verified-record cache.Adds
HARD-10/HARD-11to REQUIREMENTS.md, extends the ROADMAP execution order, logs both in STATE.md, and creates the phase directories. Plans are deferred to/gsd:plan-phase.🤖 Generated with Claude Code