Skip to content

chore(adr-102): P6e close-out — reconcile ADR-015 + sweep dead TS interfaces#491

Merged
aaronsb merged 3 commits into
mainfrom
chore/adr-102-p6e-closeout
Jun 1, 2026
Merged

chore(adr-102): P6e close-out — reconcile ADR-015 + sweep dead TS interfaces#491
aaronsb merged 3 commits into
mainfrom
chore/adr-102-p6e-closeout

Conversation

@aaronsb
Copy link
Copy Markdown
Owner

@aaronsb aaronsb commented Jun 1, 2026

ADR-102 P6e — chunk E + leftover TS sweep (P6 close-out)

The final pieces of P6, the last ADR-102 spine phase. Two focused commits.

1. Reconcile ADR-015 status (chunk E.1)

ADR-015 (Backup/Restore Streaming, Accepted) still marked "Phase 2: Restore Upload
🚧 IN PROGRESS" — but ADR-102 (P2–P6) delivered exactly that. Added a status-update
callout at the top: Phase 1 (backup download) is live (backup_streaming/backup_archive);
Phase 2 (restore upload) was delivered by ADR-102, which builds on ADR-015's streaming
foundation rather than replacing it. So ADR-015 stays Accepted and the historical
in-progress markers are left in place (read as "done, see ADR-102"). Added ADR-102 to
related. adr lint: 0 errors / 0 warnings.

restore_worker.py's "ADR-015 Phase 2 / Checkpoint Safety Pattern" citations are correct
lineage — left untouched.

2. age_ops.py trace (chunk E.2) — no change

api/lib/age_ops.py is live: imported as AGEConnection by api/admin/check_integrity.py

  • api/admin/prune.py (both kept in P6b). Not an orphan. Recorded, no code change.

3. Sweep dead backup/restore TS interfaces (leftover)

cli/src/types/index.ts defined BackupResponse, RestoreRequest, RestoreResponse, and
BackupIntegrityAssessment that nothing used:

  • createBackup() returns {filename,path,size} and uses BackupRequest (kept).
  • restoreBackup() uses positional args + multipart FormData, returns an inline type.
  • The three were referenced only by stale imports in client.ts; BackupIntegrityAssessment
    was referenced only by the dead BackupResponse (cascade orphan — same pattern P6a caught).

Their Python counterparts were deleted in P6a. Removed the four interfaces + the three dead
imports; left breadcrumb comments. CLI builds clean (tsc + npm run build).

P6 is now complete

B (#488) · C (#490) · D (#489) · E (#491, this) all resolved. The ADR-102 spine —
P2 → P3 → P4 → P5 → P5-faithful → P6 — is fully landed.

🤖 Generated with Claude Code

aaronsb added 3 commits June 1, 2026 18:02
…2 (P6e)

ADR-015 (Backup/Restore Streaming, Accepted) still marked 'Phase 2: Restore Upload
🚧 IN PROGRESS'. ADR-102 (P2–P6) delivered exactly that — the portable kg-backup/2
format + clone/merge/restamp restore + epoch reconciliation + async restore_worker.

Add a status-update callout at the top recording that Phase 1 (backup download) is
live (backup_streaming/backup_archive) and Phase 2 was delivered by ADR-102, which
builds ON this ADR's streaming foundation rather than replacing it — so ADR-015 stays
Accepted and the historical in-progress markers are left in place, read as 'done, see
ADR-102'. Adds ADR-102 to 'related'. adr lint: 0 errors / 0 warnings.
cli/src/types/index.ts defined BackupResponse, RestoreRequest, RestoreResponse, and
BackupIntegrityAssessment that no code used:
- createBackup() returns {filename,path,size} and uses BackupRequest (kept).
- restoreBackup() uses positional args + multipart FormData and returns an inline type.
- The three were referenced ONLY by stale imports in client.ts; BackupIntegrityAssessment
  was referenced only by the dead BackupResponse (cascade orphan).

Their Python-side counterparts were already deleted in P6a. Removed the four interfaces
+ the three dead imports in client.ts; left breadcrumb comments. CLI builds clean
(tsc + npm run build).
…-up)

backup_streaming.py's module docstring labeled itself 'ADR-015 Phase 2', but ADR-015
defines Phase 1 = Backup Download and Phase 2 = Restore Upload. Backup download is
Phase 1. Aligns the implementing file with the ADR-015 reconciliation in this PR
(caught by the code-reviewer). Docstring only — no behavior change.
@aaronsb aaronsb merged commit 32c0bae into main Jun 1, 2026
4 checks passed
@aaronsb aaronsb deleted the chore/adr-102-p6e-closeout branch June 1, 2026 23:07
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