Skip to content

feat(organize): verify document bundles through move and undo - #346

Draft
seonghobae wants to merge 18 commits into
codex/session-preservation-autoresearchfrom
codex/organization-bundle-preservation
Draft

feat(organize): verify document bundles through move and undo#346
seonghobae wants to merge 18 commits into
codex/session-preservation-autoresearchfrom
codex/organization-bundle-preservation

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Problem and behavior

Individual organization could separate recordings from companion metadata, split application bundles, or propose protected agent state. Planning now retains those files, explains their status, and leaves files beyond the metadata-probe budget unplanned.

The UI can also preview an explicitly selected existing document folder and destination parent. Supported bundles are flat, contain at most 32 local regular files, and total at most 8 MiB on the current head. Plans and undo receipts bind member names, file identities, exact modification times, sizes, and content digests. New members or changed content prevent movement or undo. Recognized project ancestors, package/session boundaries, links, unavailable content, and cross-volume bundle moves are retained.

macOS same-volume moves use Foundation coordination and the shared exclusive rename primitive. The organizing validator runs inside the accessor, so a companion arriving after preflight prevents mutation. Structured receipt paths preserve filenames containing -> and decomposed Unicode names.

Rule, model-picker, and extension suggestions retain producer provenance in the plan and pending/result move and undo receipts. The preview explicitly labels content as unverified; absent legacy provenance remains unknown. This label is not semantic correctness or move/deletion authority.

Validation

Current exact head 6eca22594fbae409bb81ad19582aa5906514236b adds a read-only command using the same bundle planner as the desktop application. The command has no execution option. Its regression passed (1 test), covering source preservation, absent target creation, collision refusal and help/argument handling. The standalone binary built successfully. A private four-file, 826,183-byte group was previewed in 1,092 ms with unchanged member metadata and no destination creation; this single observation is not a performance benchmark, semantic verdict or iCloud synchronization proof. Hosted Test run 34185604791 is GREEN on this exact head, including the main test job, Windows home-resolution contract and real llama.cpp CPU/FFI build. Independent review and protected stack integration remain pending.

Predecessor 336485563d89f7a85cd90009220c03693910ecbb added fixed-buffer streamed BLAKE3 verification and expanded the flat-bundle observation budget from 512 KiB to 8 MiB. Four focused bundle tests and Svelte check passed locally on that head. Hosted Test 34184735026 was still in progress at the last observation; its Windows and llama.cpp build jobs had passed. No predecessor result is transferred to the current head.

Previous exact head c2101bc401460fc7eded9c348980d50fff36d048 had hosted Test 34182083860 GREEN, including Rust, headless cloud planning, duplicate/archive proof and frontend checks. Linux, Windows and macOS build jobs also passed there. That evidence is historical only and is not transferred to 336485....

Earlier implementation checks (historical evidence, not a full rerun on the current head):

  • 33 command tests passed, including whole-bundle movement/undo, late members, same-size/same-mtime content drift, and project-boundary retention.
  • 47 shared safety tests passed through native macOS coordination.
  • Earlier regressions demonstrated failed filename round-trip and missing post-preflight validation before their fixes.
  • The unchanged live cache-cleanup assertion failed in earlier runs and passed after adding diagnostics; its intermittent cause remains unverified and its protection was not weakened.

Integration and limits

Stacked directly on #345 exact 884840f3eff744f9c8a7c97ae410d1ddf5828b09; protected checks and normal merge remain required. This is existing-folder preservation, not completed content/ontology classification. Recursive/larger bundles, crash-durable recovery, iCloud upload and cross-device confirmation, signed-app entitlement behavior, and deployment remain unfinished. Native test processes previously emitted sandbox-extension diagnostics despite successful movement and preservation assertions. Fixtures contain generated test data; no real user folder was moved by these tests.

Integration state — 2026-09-08 KST

This PR is intentionally Draft. #345 remains Draft with protected integration/review prerequisites, and #346 currently has no submitted independent review. Keep the dependent delta open and Draft until the foundation integrates or is normally restacked onto a verified successor, and require terminal exact-head checks for the then-current head. Do not transfer predecessor checks, self-approve, weaken a required gate, force-push, or close valid dependent work.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

@seonghobae seonghobae added the enhancement New feature or request label Sep 7, 2026 — with ChatGPT Codex Connector
@seonghobae
seonghobae changed the base branch from main to codex/session-preservation-autoresearch September 7, 2026 03:46
@seonghobae seonghobae added the priority: medium Normal-priority or P2 work label Sep 7, 2026 — with ChatGPT Codex Connector
@seonghobae seonghobae changed the title feat(organize): preserve companion files and explain retained items feat(organize): verify document bundles through move and undo Sep 7, 2026
@seonghobae
seonghobae marked this pull request as ready for review September 7, 2026 04:57
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Label rule, model-picker and extension suggestions as content-unverified. Keep producer provenance in pending/result move receipts and undo while retaining legacy unknown values and existing safety checks. Add producer, legacy serialization and undo regression assertions. UI check passed; local Rust check remains running and runtime tests are not yet verified. Preserve the open semantic-evidence and multi-topic grouping gaps.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae
seonghobae marked this pull request as draft September 8, 2026 03:43
Use a fixed 64KiB buffer and incremental digests for flat bundles up to 8MiB while preserving source identity, drift, dataless and boundary checks. Reproduce the prior 826183-byte refusal and verify digest parity, move/undo, exact-limit admission and one-byte excess retention. Four bundle tests and Svelte check passed; private-folder execution and deployment remain unverified.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Normal-priority or P2 work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant