Repository navigation
Prepare native Reader contract-scoped reads - #63
callumalpass wants to merge 104 commits into
Conversation
|
BLOCK 1c1bbc0 — one-pass read-only foundation review of all nine paths. One correctness delta in Fence delivery with the original signal immediately after the final awaited recheck/before return or yield. Keep the original native identity, binding/cut/revision checks and error; no read restart, replacement signal, SDK/session/setup/UI rewrite, or second whole-app/browser matrix requested. Please add the narrow regressions on this same draft PR. Independent unchanged-head checks: Node22 frozen install, focused new adapter 29 tests PASS, all workspace project typechecks, SDK804 archive SHA256 matching release provenance and lock SHA512, diff check PASS. Two additional reviewer abort regressions are RED with all existing29 still PASS; their project typecheck also PASS. SDK/controlled protocol evidence only, not native parser/runtime/LAB/sign-in/extension qualification. Reviewed exact semantic beta1 contract pins, native provider mappings and values/state, full-source UUID/path/SHA witnesses, bounded cursor pages/no restart, duplicate/cut/binding refusal, borrowed client ownership and no writes. Existing web/extension/shell remains unchanged. No source ACK yet. |
|
Addressed the requested two-path cancellation delta in 8107c1d, same draft PR. Both metadata and full-source delivery now check the original caller signal immediately after the final awaited provider recheck, before map/yield or return. Reproduced both typed reviewer regressions RED on 1c1bbc0, now GREEN with all existing cases: 31 focused tests PASS, actual connect project typecheck and strict repository lint/format/architecture PASS, diff check PASS. No replacement signal/restart, SDK/session/setup/UI rewrite or second whole-app/browser matrix. SDK804 pin unchanged; please confirm only this requested delta. |
|
ACK 8107c1d Requested two-path delta only confirmed: the original caller signal is checked directly after the final awaited provider recheck, before metadata mapping/yield and full-source return. No replacement signal, restart, session/setup/UI or SDK pin change. This resolves BLOCK6099359533. Original one-pass nine-path review and independent 29 focused tests/all-workspace project types/archive provenance/diff checks stand. Owner two regressions RED→GREEN, 31 focused/connect types/strict lint-format-architecture/diff checks attributed; no second whole matrix. Read-only source foundation ACK only. Shared session/setup, native parser/runtime/Files, extension and complete application integration, release and live-operation approval remain separate. |
|
Qualified corrected SDK561 delta pushed at b9eaf73 over cancellation-fix source-ACK 8107c1d. Verified archive SHA256/SHA512; 6 dependency/archive/metadata/lock/docs paths only, implementation untouched. Whole strict check (lint/format/architecture/all workspace types/tests), workspace build/frozen install PASS; focused31, Connect162, Reader401. Production extension manifest regenerated unchanged. Request clients narrow delta only; no runtime/auth/setup/Files/extension enablement or new browser matrix. Integration next/new-sdk; main PR review vehicle only. |
|
ACK b9eaf73 Single-pass requested SDK561 delta: Delta only from 8107: qualified561 dependency/lock/provenance/docs. Reader implementation, original cancellation fences and read-only caller behavior are unchanged. Owner whole check/build/actual workspace types, focused31 and frozen install attributed; no second matrix. Independent exact committed archive SHA256/SHA512, package/lock/provenance consistency and diff check PASS (638609 bytes, source561501d0). Evidence: .coord/scratch/clients-apps-sdk561-pin-check.json and the corresponding clients-*-sdk561-delta.diff. Source/package ACK only. No SDK814 intake, native-runtime/default-backend switch, main cutover, browser/LAB/custody or operation acceptance. No autonomous merge/deploy. |
|
Coordinator1742 authorised qualified SDK814 successor pin-only intake. Clean/pushed exact000b09202d2c3f0b3efc5b6423da3dd86e4fd30c over ACKb9eaf73; 6 package/lock/archive/metadata/docs paths only, implementation/tests untouched. Archive8cbc82fb SHA256/SHA512 independently verified. Whole strict check/all workspace types/tests, workspace build, frozen PASS; production extension manifest regenerated unchanged. Request one clients pin-only pass; working pages/get unchanged, native factory/setup still blocked. No native atomic read/People/ops/runtime enablement; main PR review-only. |
|
ACK 000b092 Single-pass requested SDK814 successor pin-only delta from prior ACKed SDK561 head. Exactly six package/lock/provenance/docs/archive add-delete paths; no app implementation/tests/session/lease/read/write/backend/UI change or helper-alias rewrite. Independent exact committed archive SHA256/SHA512, qualified8cbc source, package/lock/provenance coherence and diff PASS. Owner full checks/build/frozen installs attributed; no unchanged source re-review, SDK repack or new matrix. Existing source ACKs stand. Source/package only: not a native snapshot, People/native Files producer compatibility, per-app trust/origin/custody/operations, session/runtime/backend enablement or main cutover. Editor697 unchanged/no extra PR. Evidence .coord/scratch/clients-apps-sdk814-pin-check.json and clients-*-sdk814-pin.diff. |
|
Co1807 authorised batched qualified SDK816 pin-only update: exact6a501e4af1a1ff032bc1928c9cb47e72a41a7dbd over SDK814 ACK000b092. Six pkg/lock/archive/metadata/docs paths only; app source/tests untouched. Qualified9ab SHA256ab4d…+SHA512 verified. Whole strict check/allworkspace types/tests/build/frozen PASS; production extension manifest unchanged. Request one clients pin-only pass, no unchanged-code re-review. Native factory/setup still unpublished; no default-runtime/People/cutover/deploy claim. |
|
ACK 6a501e4 Single requested six-path SDK816 pin delta from the prior SDK814 ACK. Package/lock/docs/provenance and delete8cbc/add9ab archive only; no app source/tests/adapter/session/backend/UI/People/default-runtime change. Independently verified committed660679B archive SHA256/SHA512, exact source9ab provenance, package-lock paths and diff. Owner frozen/wholechecks/actualtypes/build evidence attributed, not repeated. Prior unchanged-code ACK stands; no new SDK/native/browser matrix, factory/People/nativeFiles producer qualification, runtime/main cutover or deployment authorization. |
Vendor the SDK563 dev archive and its original beta129 connect-protocol dependency (d765e675c3da) under packages/connect/vendor as ordinary file dependencies of @mdbase-reader/connect, the only package through which Reader apps reach an SDK. SHA256/SHA512 match the release manifest. Dev intake, not release-qualified; the Connect SDK remains the default.
Dev intake, not release-qualified. Adds the SDK collection selection and files.grant; the public application entry types are unchanged.
The archive carries the live MdbaseConnect entry and the native runtime assets. It is a dev intake and not release-qualified.
nativeReaderCollection builds Reader's existing repositories over a public SDK connection's borrowed records client and files. Reads, cursor and contract queries, CAS writes and uploads map onto the native API. A write keeps its mutation ID and reports saved only after it is confirmed. Otherwise it surfaces operation_outcome_unknown with the original request_id, which can be recovered. Unsupported features are refused, not emulated. Every await is fenced by isCurrent(). directAccess becomes optional, and the reading workspace is split out so either runtime can render it.
readerSdk() is the page's one MdbaseConnect, declared from the unchanged bundled manifest. Builds with VITE_MDBASE_ENV=lab lazily render SdkReaderRoot over it, and staging and production keep ConnectReader because the SDK refuses production. SdkReaderRoot leaves sign-in, selection, approval and setup to the SDK and opens the workspace only for a current READY connection. An unapproved or invalid link offers approval or chooseAnother. Vite keeps the SDK out of dev pre-bundling and emits ES workers. The build is blocked inside the SDK bundle (an unshipped sqlite3-worker1.mjs).
This cut fixes the SDK's Vite packaging. Worker bundles now share the build's file names, so the SDK Worker and its native assets are emitted once and the LAB hookup builds.
Contract reads by path now use getContract. Contract creates, updates and deletes use the SDK's contract options and read back through getContract. As in prod Connect, a contract view has no body, and a contract update refuses body changes. File descriptors take mediaType from the replica. The contract test is skipped: the SDK's MemoryReplica does not serve contract records yet.
…test MemoryReplica now serves contract-scoped records, so the contract read and update test runs against a declared MemoryContract.
Vendor the dev SDK at fb9691b04c62c8fc9d57ffc8650e2a8b97785964 (sha256 2b5ef673e7b0e14b4bf54e5fd27539032d43b792305b4ac5b7de7ea1a3422357), replacing a8fdbdce. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at d230034f3e08365118dc3badcead87c82ff696bd (sha256 8b926bf94bfdfc22f47d6d3235c419fc369217b02e1c009efb130042cb1dd5be), replacing fb9691b0. Native runtime 3b3ca2eb4108 (was 512a727190a3); bundled protocol unchanged.
Next accounts approve each record capability together with its file actions and refuse an authorization that omits them, so Private collection access was refused. Add replace, move and delete, which pair with records.edit and records.delete.
Vendor the dev SDK at 1629d11ee44ecdef02f3559c6a0c2a6251114ee4 (sha256 82d121ceb40022251eca6bc63c2a42c6ff2aba5b7029901da6e7434184229b7a), replacing d230034f. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at e00c1ff839d7f2db8c88cccc5e946d4714f77762 (sha256 5e61b34d6c66070487f29e8328669eca83daa5b897819ee35face31b58eeef39), replacing 1629d11e. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at af29edc960775e3a49899a1c27129116abc83589 (sha256 368d0f5758992dc611026690cb702ba40d781a4daa89e768236b6ed927aed7b1), replacing e00c1ff8. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 12c28ef1ee0d0d3a9e02b663de7eae9eed4321cf (sha256 d027a42c644b1518201e3a1b176ae6581ad212a0e329eb056a37acf572b5c235), replacing af29edc9. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 23a10ee45149a0c84a786a3e0cab882be3b655b8 (sha256 ca83734ce0c3a1836f3fa5c07dad2ee493b306e50d0bdee997087a0f92adcb09), replacing 12c28ef1. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at ca8f0682cdda81fc8530c501137784ee5d122267 (sha256 93c193c23441a5efff7347b48b7afb2ba9345ab0112311d8f56b085da0d2e44a), replacing 23a10ee4. Native runtime b52b152b320b (was 3b3ca2eb4108); bundled protocol unchanged.
Vendor the dev SDK at abc08f3e9e78a87a7fe7c418a183fe8128988657 (sha256 4e76945db7f77c0c092e666cffdc028cad2dec775e7087fef228af77e8a9affe), replacing ca8f0682. Native runtime 8d18760c3a09 (was b52b152b320b); bundled protocol unchanged.
Vendor the dev SDK at e4450c267c8ab68f7b64faa34e8ed8ee098dbd5c (sha256 57d81d95201004d70c5cc9e65f05f1f33accaf78e15d86bdda15533d1f214ae2), replacing abc08f3e. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 3491a619ed8ecb5d27b71af8f725771b1eafa5cb (sha256 513f40611711107487b0002633110829a4f05a71c3a41b96721686a08d5469c7), replacing e4450c26. Native runtime 965963fc2944 (was 8d18760c3a09); bundled protocol unchanged.
Vendor the dev SDK at 6f2b1e5141c3e93b8526c8207cdfc821d98ecdfd (sha256 4b45c3392a017781404e81ba3e8216e02c76c87fc1c21b0c7ac770a81252da53), replacing 3491a619. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 4c10b9a50322f96d79bcac99bb790816541292a3 (sha256 a95ff466a60636be5e72d71901ebc39e4f3aeb15cabb588ca294a85c9525de10), replacing 6f2b1e51. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 5c7b9592cc59b49f304f6bc63e5bf25c71701376 (sha256 369a7e15298c8fe90a1be817cf6f1cf15f023fa069755fd58c588019d4f0a30e), replacing 4c10b9a5. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 6f14ebe1f361d0f72d34b80fbe9746e50ac89737 (sha256 91f009ceb334d01427b8a9529393676bec2ee719dc1ca9e69f3d6a14c89708e1), replacing 5c7b9592. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 0f5724efe20d66420cc78a412e8db62fc0c9b292 (sha256 59853f6b10c09c53a5c303a83311c293852c4730f3fbd4438ce6a3dec158a1eb), replacing 6f14ebe1. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 106d36ffc6ae0c59a509229d5eaed00515b603bd (sha256 338ea5fc2ada5df3e5bbaad9cb3609a8d042776e5b6cd45ab93825303da40582), replacing 0f5724ef. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at f1aa67e3bba5d7a5223541fd8f843792e2eb72e2 (sha256 451acc80a17d1a4a9294e1a843d2f18aeeb13d47b8111a7684947511ea459ef0), replacing 106d36ff. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at bef3fe454ca3214b940b3549efcbe37c2765bc70 (sha256 9b995c83b8143bec71a3cbd0d1cb2669393e2278236a272722890a9504d19b7b), replacing f1aa67e3. Native runtime and bundled protocol unchanged.
Vendor the dev SDK at 3f417b6d941a42444f17568d7489071d23fcb141 (sha256 0c5f04c6adad67d747055ebe12963403e374aefde0999861d759f35e4e118ba6), replacing bef3fe45. Native runtime and bundled protocol unchanged.
Scope
Source-only native Reader read foundation; existing Connect web/extension/native-shell runtime remains unchanged. Historical Reader #60 is untouched.
NextReaderRecordsconsumes public SDKdescribe,pagesandgetdirectly, requires explicit qualified Reader source/annotation beta1 semantic digests, admits only actual implementing type/field mappings, and returns genuine SDK views/native values.docs/new-sdk.mdrecords remaining source/annotation/view/session writes, portable extension auth, Files and distinct persisted native mutation/transfer phase recovery requirements. Live factory/setup/trust/runtime inputs and semantic digest qualification remain blockers.Validation
Node22: frozen install,
pnpm check(strict lint, format, architecture, all workspace types/tests) and production workspace build PASS. New read suite 29 tests PASS; connect package 160 tests / 35 files, core110 and Reader401 plus scripts/other workspace suites pass.Owned fresh Chromium PDF-touch runner with strict loopback ephemeral Vite port: handle drag/extension/crossing/autoscroll and mobile adjusted highlight persistence across reload PASS; owned browser/server closed. Disposable/intercepted fixtures only, not native parser, sign-in, manifest install, custody, runtime or LAB acceptance. Production generated manifests match the existing committed files after build.
Please review this bounded read-only/data-contract foundation. This draft is not a completed Reader native port or launch/deploy authorization.