Skip to content

docs: v1.1 hardening todo audit cleanup and Phases 59-60 mapping#552

Merged
FSM1 merged 4 commits into
mainfrom
docs/archive-resolved-todos
Jun 23, 2026
Merged

docs: v1.1 hardening todo audit cleanup and Phases 59-60 mapping#552
FSM1 merged 4 commits into
mainfrom
docs/archive-resolved-todos

Conversation

@FSM1

@FSM1 FSM1 commented Jun 23, 2026

Copy link
Copy Markdown
Owner

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/:

Todo Resolved by
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. 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 --list showed them as Untitled / 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):

  • Phase 59 — FUSE IPNS Verify/Publish Hardening and Cleanup (HARD-10): the Phase 56/58 FUSE long-tail — the 2 partial HARD-07 residuals, VerifyError::Legacy carrying the legacy response, CAS/content_ops dead-code cleanup, and unifying the first-publish embedded-sequence convention.
  • Phase 60 — IPNS Verification Cross-Layer Closeout, Desktop and API (HARD-11): route remaining desktop Tauri resolve_ipns sites 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-11 to 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

FSM1 and others added 2 commits June 23, 2026 20:10
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
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@FSM1, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c5aded47-e28d-483c-8c43-870240a6cdf7

📥 Commits

Reviewing files that changed from the base of the PR and between 6b7bc12 and 645fa82.

📒 Files selected for processing (13)
  • .planning/REQUIREMENTS.md
  • .planning/ROADMAP.md
  • .planning/STATE.md
  • .planning/phases/59-fuse-ipns-verify-publish-hardening-and-cleanup/.gitkeep
  • .planning/phases/60-ipns-verification-cross-layer-closeout-desktop-and-api/.gitkeep
  • .planning/todos/completed/2026-06-19-extract-leaf-ipfs-provider-module.md
  • .planning/todos/completed/2026-06-19-extract-withcidlock-shared-unpin-primitive.md
  • .planning/todos/completed/2026-06-19-local-provider-unescaped-cid-in-pin-url.md
  • .planning/todos/completed/2026-06-19-register-cid-dto-validation-inconsistency.md
  • .planning/todos/completed/2026-06-21-pr538-second-coderabbit-pass-preexisting-findings.md
  • .planning/todos/completed/2026-06-21-zeroize-fuse-metadata-publish-key-params.md
  • .planning/todos/pending/2026-06-22-desktop-e2e-recycle-bin-test-parity-sh-vs-ps1.md
  • .planning/todos/pending/2026-06-22-fuse-cas-helper-dead-param-and-content-ops-cleanup.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/archive-resolved-todos

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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
@github-actions

Copy link
Copy Markdown
Contributor

Release Preview

No version bumps detected. All changes are in unversioned paths or use exempt commit types.

@greptile-apps

greptile-apps Bot commented Jun 23, 2026

Copy link
Copy Markdown

Greptile Summary

This 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.

  • Todo archive (6 items): todos for leaf IpfsProviderModule, withCidLock/unpin primitive, LocalProvider URL-encoded CID, RegisterCidDto validation divergence, the PR refactor: split and dedup oversized source files in fuse, sdk-core, api, and web #538 second CodeRabbit pass, and FUSE zeroize key params are each annotated with their resolving PR and moved to completed/.
  • Frontmatter fix (2 todos): 2026-06-22-desktop-e2e-recycle-bin-test-parity-sh-vs-ps1.md and 2026-06-22-fuse-cas-helper-dead-param-and-content-ops-cleanup.md receive proper YAML frontmatter so gsd-capture --list can surface them correctly.
  • Phases 59–60: HARD-10 (FUSE IPNS verify/publish hardening & cleanup) and HARD-11 (IPNS verification cross-layer closeout for desktop and API) are defined with scope, dependencies, and verification gates; phase directories are stubbed; execution order is extended — but the progress status table in ROADMAP.md does not yet include rows for either new phase.

Confidence Score: 4/5

Safe 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

Filename Overview
.planning/ROADMAP.md Adds Phase 59 and 60 sections with scope, dependencies, and verification gates, and updates the execution order — but both phases are missing from the progress status table that tracks every other phase (18–58).
.planning/REQUIREMENTS.md Adds HARD-10 and HARD-11 requirement entries, updates coverage count to 11, extends phase range to 50–60, and adds a changelog footer — all consistent and correct.
.planning/STATE.md Appends Phase 59 and 60 entries to the Recent for v1.1 log — correct and complete.
.planning/todos/completed/2026-06-19-extract-leaf-ipfs-provider-module.md Archived from pending to completed with a Resolved by PR #541 annotation — straightforward housekeeping.
.planning/todos/pending/2026-06-22-desktop-e2e-recycle-bin-test-parity-sh-vs-ps1.md Adds YAML frontmatter to fix the Untitled / general / unknown display in gsd-capture --list; content unchanged.
.planning/todos/pending/2026-06-22-fuse-cas-helper-dead-param-and-content-ops-cleanup.md Adds YAML frontmatter for the same gsd-capture fix; deferred rationale in body is preserved unchanged.

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
Loading
%%{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
Loading

Comments Outside Diff (1)

  1. .planning/ROADMAP.md, line 1129-1131 (link)

    P1 Phase 59 and 60 are missing from the progress status table. Every other phase from 18 through 58 has a row there (including "Planned" phases like 52–54 that also have no plans yet), so the table currently gives an incomplete picture of the roadmap. Both new phases should be added with Planned status, - for plans complete and completed date, and the v1.1-hardening milestone label — matching the pattern used for Phases 52–54.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Reviews (2): Last reviewed commit: "docs: map out Phases 59 and 60 from the ..." | Re-trigger Greptile

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
@FSM1 FSM1 changed the title docs: archive 6 already-resolved todos and fix 2 todo frontmatter docs: v1.1 hardening todo audit cleanup and Phases 59-60 mapping Jun 23, 2026
@FSM1 FSM1 merged commit 576937c into main Jun 23, 2026
20 checks passed
@FSM1 FSM1 deleted the docs/archive-resolved-todos branch June 23, 2026 18:51
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