docs: recover archive requirements and remove docs/archive#383
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: netkeep80#382
Resolves netkeep80#382. Each docs/archive/* file was audited and its valuable content either confirmed represented in canonical docs / req/, or recovered into the req/ catalog as Draft entries when it described a backlog feature (encryption, compression, transactions, GC, shared memory) or a public API still in code (pptr byte_offset round-trip). req/ additions - fr-035 / if-012 / ac-013: byte_offset ↔ pptr round-trip (Recovered) - fr-036, fr-037, feat-011, qa-sec-001, asm-007: encryption / compression (Draft / Could, tracking netkeep80#239) - fr-038, feat-012: transactional API (Draft / Could) - fr-039, feat-013: Mark & Sweep GC (Draft / Could) - fr-040, feat-014, if-013: shared memory storage backend (Draft / Could) Anchor / test coverage - Add include/pmm/typed_manager_api.h anchor for pptr_from_byte_offset - Add tests/test_issue211_byte_offset.cpp req-trace block (fr-035, if-012, ac-013) - Backfill req:* @see comments on issue#43 phase1/phase2 and issue#213 fuzz/overflow/concurrent tests so traceability check passes Docs cleanup - README.md: replace archive paragraph with reference to req/ - docs/index.md: remove Archive section from doc index - docs/repository_shape.md: replace Archive section with removal notice - docs/deletion_policy.md: replace 'archive' lifecycle category with 'recover-into-req' (history goes to req/ as Draft, then is deleted) - Delete docs/archive/ in full (12 files, ~3000 lines removed) Dispositions not requiring req/ additions - AVL Forest material: already covered by docs/pmm_avl_forest.md §7.1 - demo.md: already covered by if-011 + dep-002 - ppool: removed in netkeep80#349, intentionally not re-added - BinDiffSynchronizer plan: explicitly out of PMM scope
docs/archive and delete the archive
Working session summaryDone. PR #383 is now ready for review: #383 What landed:
Checks passing locally: This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $10.154951📊 Context and tokens usage:Claude Opus 4.7: (4 sub-sessions)
Total: (15.9K new + 383.6K cache writes + 11.8M cache reads) input tokens, 71.3K output tokens, $10.154951 cost 🤖 Models used:
📎 Log file uploaded as Gist (5100KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 1)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
…changelog fragment, sync README badge - Regenerate single_include/pmm/pmm.h via scripts/generate-single-headers.sh to incorporate the new req: anchor lines added in include/pmm/pptr.h and include/pmm/typed_manager_api.h. Lines: 6352 → 6356 (doc-only growth). - Bump scripts/source-loc-baseline.txt 6352 → 6356 to match the regenerated single-header. No production code added — the 4 extra lines are anchor metadata for the recovered byte-offset API requirement (fr-035, if-012). - Add changelog.d/20260511_080000_issue382_recover_archive_requirements.md documenting the archive recovery, new req entries, and CI-only changes. - Bump README.md version badge 5.0.1 → 6.2.1 to satisfy release-owned version-consistency: this docs PR must touch README.md to drop the docs/archive/ reference, which triggers the release-owned check; the badge was already stale on main so it is bumped in sync with CMakeLists.txt and CHANGELOG.md.
Working session summaryAll 20 CI checks pass. The PR is now ready. Summary of what I did: 4 CI failures fixed in commit
PR description was updated to reflect these CI-driven changes. All 20 CI checks now pass on PR #383. This summary was automatically extracted from the AI working session output. |
🔄 Auto-restart-until-mergeable Log (iteration 1)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $4.806961📊 Context and tokens usage:
Total: (116 new + 108.6K cache writes + 7.2M cache reads) input tokens, 20.6K output tokens, $4.806961 cost 🤖 Models used:
📎 Log file uploaded as Gist (7286KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
This reverts commit d6d8703.
|
Проверил PR #383. Вердикт: идея и большая часть реализации правильные, но я бы не мержил до нескольких правок. PR действительно делает нужное: удаляет Что нужно поправить перед merge1.
|
|
🤖 AI Work Session Started Starting automated work session at 2026-05-11T08:51:22.394Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
…ec Won't, update matrix Addresses owner review feedback on PR netkeep80#383: 1. fr-036 / qa-sec-001: replace the granule-index-only IV with a unique per-encryption nonce derived from (granule_index, block_generation_counter) to prevent CTR-mode IV reuse on block rewrites (the original docs/archive/phase7_4_encryption_compression.md proposal already used a block_generation_counter — its omission was a regression in the recovered requirement). Also require authenticated encryption (AEAD AES-256-GCM, or AES-256-CTR + HMAC) so wrong-key / tampered-ciphertext / replayed-nonce loads are rejected via PmmError::AuthenticationFailed. feat-011 notes are aligned with the AEAD recommendation. 2. demo.md disposition: add feat-015 (Won't / Deprecated) explicitly marking the detailed visual demo spec (memory-map view, metrics view, structure tree, scenario manager, FPS/memory constraints) as out of PMM scope. The optional demo-target build fact remains represented via if-011 + dep-002; if-011 now references feat-015 for the deliberate scope decision. 3. req/13_traceability_matrix.md: add feature-level trace entries for feat-011…feat-015 plus a dedicated recovered byte-offset API block covering fr-035 / if-012 / ac-013. The matrix previously had no link to the new requirements. 4. changelog.d/...issue382...md: extend the fragment with the new feat-015 Won't entry, the matrix update, and the fixed fr-036 nonce/AEAD wording. All checks pass: check-requirements-catalog.py, check-requirements-traceability.py, check-docs-consistency.sh, check-include-anchor-comments.sh, check-version-consistency.sh, check-source-loc-budget.sh, check-changelog-fragment.sh.
|
Thanks for the review @netkeep80! All three blocking points are addressed in commit 1. 2.
3. Non-blocking: phase 3 disposition mapping — the PR description disposition table now maps All seven local checks still pass:
|
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $3.144146📊 Context and tokens usage:
Total: (58 new + 117.1K cache writes + 3.6M cache reads) input tokens, 25.1K output tokens, $3.144146 cost 🤖 Models used:
📎 Log file uploaded as Gist (1627KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Resolves #382.
Summary
Each of the 12 files under
docs/archive/was audited and given one of four dispositions, then the directory was removed. Valuable material — public APIs still in code, and the Phase 7 / encryption / compression / transactions / GC / shared-memory backlog described inplan.mdandphase7_4_encryption_compression.md— was recovered intoreq/asDraft(orRecovered) entries so it survives the deletion. The detailed visual demo specification fromdemo.mdis intentionally not recovered; that decision is recorded asfeat-015Won't/Deprecatedso the deletion is explicit rather than silent.Disposition table
PMM_AVL_Forest_Concept.mddocs/pmm_avl_forest.md§7.1,dr-013,dr-017,feat-002,fr-005avl_forest_analysis_ru.mddocs/pmm_avl_forest.md,docs/block_and_treenode_semantics.mddemo.md(optional demo-target + build flag)if-011,dep-002demo.md(detailed visual UI specification)feat-015(Won't/Deprecated) explicitly records the deliberate out-of-scope decision;if-011notes point to itphase1_safety.mdqa-rel-001,fr-006, issue #43 acceptance; test@seeupdatedphase2_persistence.mdqa-rec-001,fr-014,fr-016; test@seeupdatedphase3_types.md(pstring / parray / pmap / pallocator / pstringview)feat-008,dr-009,dr-010,dr-011,fr-017,fr-018,fr-031,con-012phase3_types.md(ppool)phase4_api.mdfeat-003,fr-027,if-005,if-010phase5_testing.mdqa-test-001,qa-thread-001; test@seeupdatedphase6_documentation.mddocs/canonical set +req/catalogphase7_4_encryption_compression.mdfr-036,fr-037,feat-011,qa-sec-001,asm-007(all Draft / Could, tracking #239)plan.md(backlog: tx / GC / shared-memory)fr-038+feat-012;fr-039+feat-013;fr-040+feat-014+if-013(all Draft / Could)plan4BinDiffSynchronizer.mdPublic-API surface check:
pptr<T>::byte_offset()/pptr_from_byte_offset<T>(): Recover into req/ →fr-035+if-012+ac-013(Should / Recovered), with new anchors ininclude/pmm/pptr.handinclude/pmm/typed_manager_api.hand areq:trace block intests/test_issue211_byte_offset.cpp.ppool: removed in сжать кодовую базу методом рефfкторинга кода #349 — intentionally not added toreq/.Changes
req/— 15 new entries (fr-035…fr-040, feat-011…feat-015, if-012, if-013, qa-sec-001, asm-007, ac-013), all tied throughРеализует/Связано с/Проверяется в.req/13_traceability_matrix.md— feature-level trace entries added forfeat-011…feat-015, plus a dedicated recovered byte-offset API block (fr-035/if-012/ac-013).pmm-detail-persistmemorytypedapi-pptr_from_byte_offsetanchor + updatedpmm-pptr-byte_offsetreq-list.test_issue211_byte_offset.cppnow carries the catalogreq:block; six other tests get@see req/...lines.README.md,docs/index.md,docs/repository_shape.md,docs/deletion_policy.mdno longer referencedocs/archive/;deletion_policy.mdreplaces thearchivelifecycle category withrecover-into-req.docs/archive/.single_include/pmm/pmm.hregenerated viascripts/generate-single-headers.shto incorporate the new anchor metadata;scripts/source-loc-baseline.txtbumped 6352 → 6356 to match.changelog.d/20260511_080000_issue382_recover_archive_requirements.mdsummarises the recovered backlog entries, the supporting baseline/anchor refresh, and the post-review crypto/demo fixes.CMakeLists.txtandCHANGELOG.md. The archive cleanup unavoidably touchesREADME.mdto drop thedocs/archive/reference, which arms the release-ownedversion-consistencycheck; the badge was already stale onmainso it is now in sync.Post-review revisions (commit
52b26a3)After @netkeep80's review (#383 (comment)), three follow-up fixes landed:
fr-036/qa-sec-001— cryptographic hardening. The previous draft derived the per-block IV from(master_key, granule_index)only, which would cause CTR-mode key/IV reuse whenever a block is rewritten — exactly the gap the original archive proposal closed withblock_generation_counter. The requirement now mandates a unique nonce per encryption via(granule_index, block_generation_counter), and requires authenticated encryption (AEAD AES-256-GCM, or AES-256-CTR + HMAC) so wrong-key / tampered-ciphertext / replayed-nonce loads are rejected throughPmmError::AuthenticationFailed.feat-011notes are aligned with the AEAD recommendation.demo.md— explicit scope decision. Addedfeat-015(Won't/Deprecated) recording that the detailed visual demo spec (memory-map view, metrics view, structure tree, scenario manager, multithreaded scenarios, persistence-cycle scenario, FPS/memory constraints) is intentionally out of PMM scope. The optional demo-target build fact remains represented viaif-011+dep-002;if-011now referencesfeat-015for the deliberate scope decision.req/13_traceability_matrix.md— surfaces new requirements. Added feature-level trace entries forfeat-011…feat-015and a recovered byte-offset API block coveringfr-035/if-012/ac-013. The matrix previously had no link to the new requirements.The non-blocking disposition-table comment (phase 3 mapping) is also addressed in the table above:
phase3_types.mdis now mapped tofeat-008and the relevantdr-*/fr-*/con-*requirements rather than the previously-listedfeat-003/if-005…if-011, andppoolis called out as intentionally removed in #349.Verification
No live links to
docs/archive/*remain (only two non-link backtick mentions indocs/deletion_policy.mdanddocs/repository_shape.mdexplaining the historical removal).Test plan
scripts/check-requirements-traceability.pypassesscripts/check-requirements-catalog.pypassesscripts/check-docs-consistency.shpassesscripts/check-include-anchor-comments.shpassesscripts/check-version-consistency.shpassesscripts/check-source-loc-budget.shpassesscripts/check-changelog-fragment.shpasses (fragment inchangelog.d/)single_include/pmm/pmm.hmatchesscripts/generate-single-headers.shoutputgrep -r 'docs/archive/' .returns no link references (only descriptive backticks)docs/archive/directory no longer exists