Skip to content

Expose immutable source revisions and bounded authorized file reads - #84

Draft
ancongui wants to merge 2 commits into
feat/native-object-storagefrom
feat/source-explorer
Draft

ancongui wants to merge 2 commits into
feat/native-object-storagefrom
feat/source-explorer

Conversation

@ancongui

@ancongui ancongui commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Record public source at the Engine snapshot boundary and expose current-authorized revisions, catalog pages and verified byte windows. The backend reuses SourceCatalog V1 and the native paged object ledger, verifies source/actor/owner fences and keeps incomplete writes unavailable. Range reads fetch selected chunks with credential overlap rather than restoring a whole file. Strict Python SDK methods validate lineage, extents and hashes.

The standalone Studio SourceExplorer component reads the actual API contract with recorded branch/snapshot selectors, paged file navigation, syntax and binary views, UTF-8 boundary handling, and explicit pending/review/unavailable/revoked states. It clears stale responses on scoped switches and renders source as escaped text. Branch/HEAD/tree are contextual metadata; the UI says Recorded source snapshot and does not assert verified checkpoint or commit provenance. App Files-tab wiring is a separate composition.

Configured native storage enables fresh recording by default, with administrator project opt-outs and retain-until-explicit-GC policy. Old unpublished runs remain unavailable. No live workspace fallback, object-reference grant, editing, terminal or live SCM discovery is added.

Validation: 107 cohesive backend host cases passed (one retained Git-process case excluded), full mypy418, Ruff/format426 and backend strict docs. Native2 passed19.53s with a NOSUPERUSER PostgreSQL application role:131files/two catalog pages, canonical background actor, cold API/OIDC/current ACL readback, tenant/revocation refusals and uncertain-write restart without replay. PG drained and private credentials removed. Studio856units/98files passed, including23new cases;5controlled Playwright journeys passed at1440x900 and390x900 in both themes, including keyboard, layout, UTF-8/binary safety, errors and late-response isolation. TypeScript, ESLint, Prettier and production build passed. Screenshots are controlled fixtures, not Original acceptance.

Remaining gates: App integration and one full canonical documentation recapture after composition (the inventory hashes every Studio source file); explicit retained-byte credential-rescan and exact typed checkpoint-source-digest custody followups; native-storage setup UI, live providers, authority closure and successor qualification. No profile/prompt literals changed. This does not claim whole-product or Original CRM acceptance.

This branch has not been deployed

No deployments
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