Skip to content

feat(storage): isolate datasets by project - #131

Merged
tuzuminami merged 2 commits into
mainfrom
codex/project-isolation-40
Jul 20, 2026
Merged

feat(storage): isolate datasets by project#131
tuzuminami merged 2 commits into
mainfrom
codex/project-isolation-40

Conversation

@tuzuminami

Copy link
Copy Markdown
Owner

Summary

Closes #40.

  • Add schema v3 projects, explicit opaque UUID scope, legacy backfill, foreign-key constraints, and per-project revision/CAS protection.
  • Carry project context through the desktop selector, Tauri allowlist, local API, recording, import, analysis, export, and deletion paths.
  • Prevent recording/switch/delete races and avoid re-running migrations for each scoped request.
  • Update the non-engineer workflow and project-boundary documentation.

Legacy migration

Existing data is atomically backfilled into the deterministic Migrated data project. Migration records before/after counts and content fingerprints.

Validation

  • ./scripts/test.sh (124 passed)
  • ./scripts/lint.sh
  • ./scripts/check_licenses.sh
  • ./scripts/check_no_external_network.sh
  • cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml (29 passed)
  • ./scripts/perf_smoke.sh

Residual scope

Workspace backup/restore and all-data deletion policy remain owned by #52 and #54; clearing a selected project does not delete workspace migration snapshots.

@tuzuminami
tuzuminami marked this pull request as ready for review July 20, 2026 07:57
@tuzuminami
tuzuminami merged commit c4a13c4 into main Jul 20, 2026
2 checks passed
@tuzuminami
tuzuminami deleted the codex/project-isolation-40 branch July 20, 2026 08:23
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.

[P0][Storage] project/案件単位でデータセットを完全分離する

1 participant