Skip to content

feat(core): add Manifest v2 trust boundary - #70

Merged
siracusa5 merged 2 commits into
mainfrom
codex/project-profiles-manifest-v2
Jul 29, 2026
Merged

feat(core): add Manifest v2 trust boundary#70
siracusa5 merged 2 commits into
mainfrom
codex/project-profiles-manifest-v2

Conversation

@siracusa5

@siracusa5 siracusa5 commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements the first Project Profiles slice by establishing a shared Manifest v2 trust boundary before profile-aware runtime and UI work. Existing flat manifests remain behaviorally compatible and unmodified on read, while v2 selection, migration, Pack operations, settings-sync writes, source mutations, and cache isolation become deterministic and safe.

Changes

  • add dependency-free Manifest v2 validation, deterministic profile selection, summaries/revisions, migration, verified backups, and ownership-safe locked atomic writes
  • normalize shipped settings-sync transitional shapes into pending non-runnable sources while preserving local layers, owner metadata, mappings, and Pack assignments
  • refactor Pack, engine-service source CRUD, desktop first-run creation, and desktop settings-sync writes onto the shared manifest transaction boundary
  • canonicalize v2 default Pack assignments and enforce bidirectional registry/profile/layer/version invariants
  • add opt-in profile/source fingerprint cache namespaces without moving existing flat-manifest caches
  • add 14 manifest regression tests, Pack v2 coverage, desktop sync-derived migration coverage, and the canonical Manifest v2 reference

Test Plan

  • npm test
  • npm test in apps/desktop — 33 tests
  • npm run build in apps/site — 28 pages plus install-page verification
  • git diff --check
  • Spec compliance: PR 1 slice passes
  • Security review: clear
  • CI checks pass

Notes

  • This is implementation PR 1 of 5 from docs: define Project Profiles delivery plan #69.
  • Runtime selection in resolver/MCP is PR 2; the profile-aware service API is PR 3; no profile UI is included here.
  • Existing flat manifests remain unmodified on read. Agent-facing manifests should not be manually converted until the runtime-selection slice lands.

@siracusa5 siracusa5 added the enhancement New feature or request label Jul 29, 2026
@siracusa5
siracusa5 force-pushed the codex/project-profiles-manifest-v2 branch from e8baacb to 97e8b97 Compare July 29, 2026 05:34
@siracusa5
siracusa5 merged commit a38c488 into main Jul 29, 2026
7 checks passed
@siracusa5
siracusa5 deleted the codex/project-profiles-manifest-v2 branch July 29, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant