369 lines
22 KiB
Markdown
369 lines
22 KiB
Markdown
# Task: Implement MakeLore Development Data Service P0 client
|
|
|
|
## Identity
|
|
|
|
- Task ID: 20260826-makelore-data-service-client-b72e4c19
|
|
- Mode: Feature
|
|
- Branch: codex/20260826-makelore-data-service-client-b72e4c19-makelore-data-service-client
|
|
- Worktree: D:\Datas\OthersProjects\makelore-data-service-client-b72e4c19
|
|
- Base commit: f2456039230f68e3ecb2c8653fc3379c23bbe5ce
|
|
- Owner: codex-root
|
|
- Status: In Progress (ML-01 through ML-03 integrated)
|
|
|
|
## Scope
|
|
|
|
- Coordinate the repository-local `implement-spec` run for client tickets ML-00
|
|
through ML-09 from post-Pi-integration base
|
|
`f2456039230f68e3ecb2c8653fc3379c23bbe5ce`.
|
|
- Deliver durable MakeLore project identity, Main-owned Data Service cloud/Host
|
|
operations, purpose-specific Pi tools, preview data sessions and CDP injection,
|
|
the thin generated SDK, bundled Data Service Skill, focused/full verification,
|
|
repository-local review, and one remediation pass when findings require it.
|
|
- Own the client implementation branch and merge only commits returned by isolated
|
|
ticket worktrees in dependency order.
|
|
|
|
## Intent And Constraints
|
|
|
|
- Follow the server repository's implementation specification, ticket graph,
|
|
canonical integration contract, and accepted ADR without reopening the frozen P0
|
|
product scope.
|
|
- Preserve the integrated Pi `0.84.2` hard cutover, product-neutral Snapshot/Patch
|
|
contracts, Main/Renderer trust boundary, current Host route ordering, and the
|
|
existing Agent Browser abstraction.
|
|
- `.niancode/project.json` owns the durable optional `projectId`; local project IDs,
|
|
Pi session/resource IDs, and the `opencode-projects` compatibility store name remain
|
|
local identities.
|
|
- Electron Main remains the only Works credential owner. Generated code receives only
|
|
an ephemeral exact-Origin data capability; no credential, owner, path, arbitrary
|
|
endpoint, or cloud project ID becomes a model-controlled input.
|
|
- Do not restore OpenCode, add Firebase compatibility, published-runtime support,
|
|
retries for ambiguous writes, a filesystem-copy engine, or a generic operation
|
|
multiplexer.
|
|
- The root `main` worktree remains clean and unowned. All writes stay in this isolated
|
|
coordinator worktree or ticket-specific linked worktrees.
|
|
|
|
## Planning Gate
|
|
|
|
- Result: Passed on 2026-08-26.
|
|
- Loaded MakeLore `AGENTS.md`, required project-memory entry documents, current state,
|
|
accepted auth and Pi decisions, relevant architecture/domain/evidence/commitment
|
|
material, the cross-repository Data Service spec/graph/contract, and the exact Pi,
|
|
Host API, project-storage, session, and Agent Browser seams at the recorded base.
|
|
- Registry review found 147 historical owners. Most are ready-for-integration and
|
|
represented in the selected base. Ten remain marked planning; nine have placeholder
|
|
scopes and therefore unknown coordination state, while one owns an unrelated AI
|
|
Design E2E file. No declared Data Service or owned-path semantic conflict exists.
|
|
- Real PostgreSQL, signed-in accounts, deployment inputs, and platform-specific E2E
|
|
prerequisites remain external acceptance inputs and will not be inferred as passed.
|
|
|
|
## Ticket Ownership
|
|
|
|
- ML-00: coordinator in this worktree.
|
|
- ML-01 through ML-07: isolated implementer worktrees from the exact merged frontier
|
|
commit, with the file ownership defined by the ticket graph.
|
|
- ML-08: repository-local merger in this implementation worktree.
|
|
- ML-09: read-only review followed by one isolated remediation implementer if needed.
|
|
- X-01: coordinated only after reviewed server and client branches are ready.
|
|
|
|
## Outcome
|
|
|
|
- Integrated ML-01 project identity from the exact integration frontier
|
|
`7e54b8fbda1899b73334d7c3e732ce8e73460ed8` with no cherry-pick conflict.
|
|
Implementer commit `274172ac9d7ea2468242448d4b0b19fd2205f8fb` was
|
|
cherry-picked as feature commit `43f58fc` (`feat(coding): add durable
|
|
project identity core`). The delivered scope is limited to identity core,
|
|
coding-project Host routes/composition and callback wiring, release-proof
|
|
fixtures, and focused tests. The implementer task record was removed from
|
|
this coordinator's net diff; the source worktree retains its own record.
|
|
- Integrated ML-02 identity UX from the exact ML-01 frontier
|
|
`5ac08d509f8962a3c2c0ec1b1afef84a435f116d` with no cherry-pick conflict.
|
|
Implementer commit `363660a81b3f79ffab4594763170932790f41299` was
|
|
cherry-picked as feature commit `ce8e210` (`feat(coding): add project
|
|
identity UX`). The delivered scope is limited to the Sidebar and Project
|
|
Configuration identity controls, Renderer facade/store projections, focused
|
|
tests, and identity E2E; no Main, cloud, session, or provisioning logic was
|
|
added. The foreign ML-02 task record was deleted from this coordinator's net
|
|
diff after cherry-pick; the source worktree retains its own record.
|
|
- Integrated ML-03 Main Data Service from the exact ML-02 frontier
|
|
`003fe210f49de37c7ddf49cf10acde38705bf8c3` with no cherry-pick conflict.
|
|
Implementer commit `10d8132cc34f1a69fafdd9e9f7ff3693888fc3fc` was
|
|
cherry-picked as feature commit `c19227a` (`feat(coding): add Main Data
|
|
Service Host adapter`). The delivered scope is limited to the Main-owned
|
|
cloud client, shared safe DTOs, `DataServiceOperations` coding composition,
|
|
fixed `/api/works/data-service` Host routes, route precedence before the
|
|
Works catch-all, and focused tests; no preview/Pi/Renderer credential or
|
|
unrelated transport logic was added. The foreign ML-03 task record was
|
|
deleted from this coordinator after cherry-pick; the source worktree retains
|
|
its own record. The ML-04 frontier is this integrated commit plus the
|
|
coordinator's cleanup/record commit.
|
|
- Applied the ML-03 post-merge correctness correction from source commit
|
|
`0ecceef15d2e43190f835fd71a7a1478222f1ba8` onto coordinator frontier
|
|
`e15d8b7f51bea6b56558c981964082a4e76e523c`. The expected modify/delete
|
|
conflict was limited to the already-removed foreign ML-03 task record; it
|
|
was kept deleted, and the correction cherry-picked as feature commit
|
|
`6b36753` (`fix(coding): reject mismatched Data Service errors`). The Main
|
|
client now rejects known error codes paired with undocumented HTTP statuses
|
|
as `upstream_invalid_response`, with one focused regression test. The ML-04
|
|
frontier is `6b36753` plus this coordinator record commit.
|
|
- Integrated ML-04 from source commits
|
|
`e4fdeaea02cab216f4e7ff4543d57ca9e2aab33b` and
|
|
`93609d5890b6be4c51c083125d3d8ab7ebd3d02d` in the requested order as
|
|
coordinator commits `1d63233cd03425e9158b9c4868b3cfc0e508bc6f` and
|
|
`f61990f3a7f5ea417ca3eecc6702e71398f77d7f`. Git auto-merged the known
|
|
`data-service-client.ts` overlap without a conflict; the ML-03
|
|
`ERROR_STATUS_BY_CODE` ↔ HTTP-status validation remains alongside the ML-04
|
|
trusted `projectPath` authority seam. The ten parent-only underscore tools,
|
|
closed inputs, shared in-process `DataServiceOperations`, safe details and
|
|
literal confirmation behavior are retained. The foreign ML-04 task record
|
|
was removed from this coordinator after both cherry-picks; the source record
|
|
remains in `D:\Datas\OthersProjects\makelore-ml04-pi-data-tools-8d3c91a7`.
|
|
The ML-04 frontier is `f61990f3a7f5ea417ca3eecc6702e71398f77d7f` plus this
|
|
coordinator cleanup/record commit.
|
|
- Integrated ML-05 from source commit
|
|
`080b8801d29274b506700f94391339d98fb7aa0d` at the exact ML-04 frontier
|
|
`bec67082b3dade05e900911c13ad804e781309f6` as coordinator commit `e842dd4`
|
|
(`feat(coding): add preview data runtime session`), with no cherry-pick
|
|
conflict. The delivered scope is limited to the Main-owned ephemeral
|
|
preview session manager, exact `/api/runtime/data/v1` data-only routes,
|
|
early route precedence, trusted Data Service forwarding, lifecycle
|
|
invalidation wiring, and focused loopback coverage; ML-06 pre-document
|
|
injection was not included. The foreign ML-05 task record was removed from
|
|
this coordinator after cherry-pick; the source record remains in
|
|
`D:\Datas\OthersProjects\makelore-ml05-preview-data-session-5c8e2a71`.
|
|
The ML-06 frontier is `e842dd4` plus this coordinator cleanup/record commit.
|
|
- Integrated ML-06 from source commit
|
|
`992a0a68d743f766f19bc34c245adca4431ba321` at the exact ML-05 frontier
|
|
`14fec701086f60d78466b8e1cc3fb57ca8d7e200` as coordinator commit `38d63a9`
|
|
(`feat(agent-browser): add opt-in preview data injection`), with no
|
|
cherry-pick conflict. The delivered scope is limited to the explicit Agent
|
|
Browser preview-data opt-in, exact-Origin CDP pre-document script lifecycle,
|
|
child-session tracking/cleanup, and Main/session invalidation wiring; the
|
|
ordinary arbitrary-URL path remains data-free and no second BrowserWindow or
|
|
preload was added. The foreign ML-06 task record was removed from this
|
|
coordinator after cherry-pick; the source record remains in
|
|
`D:\Datas\OthersProjects\makelore-ml06-agent-browser-injection-2c7e91a4`.
|
|
The ML-07 frontier is `38d63a9` plus this coordinator cleanup/record commit.
|
|
- Integrated ML-07 from source commit
|
|
`d22ceef104b4f95e7a35888875dcb1c18245c190` at the exact ML-06 frontier
|
|
`552c6162a57894b713ea1f47d356fa48c0fc0cf1` as coordinator commit `549069d`
|
|
(`feat(coding): add generated Data Service SDK skill`), with no cherry-pick
|
|
conflict. The delivered scope is limited to the bundled Data Service Skill,
|
|
canonical TypeScript/JavaScript SDK assets, existing skill registry/display
|
|
registration, and focused SDK/install/workflow tests. The source commit and
|
|
coordinator range contain no root `task_plan.md`, `findings.md`, or
|
|
`progress.md` scratch files. The foreign ML-07 task record was removed from
|
|
this coordinator after cherry-pick; the source record remains in
|
|
`D:\Datas\OthersProjects\makelore-ml07-data-service-sdk-skill-6b4e91c2`.
|
|
The ML-08 frontier is `549069d` plus this coordinator cleanup/record commit.
|
|
|
|
## Verification
|
|
|
|
- `pnpm exec vitest run tests/unit/coding-project-identity.test.ts
|
|
tests/unit/coding-projects-migration.test.ts
|
|
tests/unit/coding-core-routes.test.ts
|
|
tests/unit/coding-projects-schema-v2.test.ts`: 4 files / 48 tests passed.
|
|
- `pnpm typecheck`: passed.
|
|
- `pnpm lint:check`: passed with 0 errors and 5 pre-existing warnings in
|
|
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; none are in
|
|
the ML-01 paths.
|
|
- `git diff --check`: passed.
|
|
- Cherry-pick parent, coordinator branch, and required integration frontier
|
|
were verified against `7e54b8fbda1899b73334d7c3e732ce8e73460ed8` before
|
|
integration; the cherry-pick completed without conflicts.
|
|
- ML-02 focused Renderer tests:
|
|
`pnpm exec vitest run tests/unit/coding-projects-facade.test.ts
|
|
tests/unit/project-config-store.test.ts
|
|
tests/unit/coding-workspace-store.test.ts --maxWorkers=1`: 3 files / 10
|
|
tests passed.
|
|
- `pnpm build:vite`: passed; generated the Main/Preload bundles required by
|
|
the Electron fixture.
|
|
- `pnpm test:electron:windows`: 2 files / 4 tests passed.
|
|
- `pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts
|
|
--config=playwright.config.ts`: 2 tests passed after the Vite build.
|
|
- `pnpm exec playwright test
|
|
tests/e2e/project-configuration-skills.spec.ts
|
|
--config=playwright.config.ts`: 1 test passed.
|
|
- `pnpm typecheck`: passed.
|
|
- `pnpm lint:check`: passed with 0 errors and 5 pre-existing warnings in
|
|
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; none are in
|
|
the ML-02 paths.
|
|
- `git diff --check`: passed; the net ML-02 path audit contains only Renderer
|
|
UI/facade/store and tests, with no `electron/`, `resources/`, or `scripts/`
|
|
files.
|
|
- Implementer-provided broader results (not rerun by this merger): `pnpm test`
|
|
passed with 183 files / 1554 tests and 2 skipped; the full E2E run passed 25
|
|
tests and reproduced one pre-existing PI model-combobox failure at
|
|
`tests/e2e/pi-coding-first-chat.spec.ts:575` on its direct rerun. This
|
|
unrelated failure remains visible and is not masked by the focused passes.
|
|
- ML-03 focused tests: `pnpm exec vitest run
|
|
tests/unit/data-service-client.test.ts tests/unit/data-service-routes.test.ts
|
|
tests/unit/data-service-server-registration.test.ts --maxWorkers=1` — 3
|
|
files / 17 tests passed.
|
|
- ML-03 regression tests: `pnpm exec vitest run
|
|
tests/unit/coding-core-routes.test.ts tests/unit/coding-project-identity.test.ts
|
|
tests/unit/host-api-proxy.test.ts tests/unit/works-routes.test.ts
|
|
--maxWorkers=1` — 4 files / 82 tests passed.
|
|
- `pnpm typecheck`: passed.
|
|
- `pnpm lint:check`: passed with 0 errors and the same 5 existing warnings in
|
|
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
|
- `git diff --check`: passed.
|
|
- Coordinator branch, clean state, exact ML-02 HEAD, and ML-03 commit parent
|
|
were verified before integration; cherry-pick completed without conflicts.
|
|
- ML-03 correction focused tests: the same 3-file command passed 18 tests after
|
|
integrating `6b36753`.
|
|
- ML-03 correction `pnpm typecheck`: passed.
|
|
- ML-03 correction `pnpm lint:check`: passed with 0 errors and the same 5
|
|
existing warnings in `src/pages/Home/index.tsx` and
|
|
`src/pages/Makelore/index.tsx`.
|
|
- ML-03 correction `git diff --check`: passed.
|
|
- Correction cherry-pick was applied from the exact `e15d8b7` coordinator
|
|
frontier; only the expected foreign task-record modify/delete conflict
|
|
occurred, and the source record remains in the source worktree.
|
|
- The coordinator already had this task's Git-common ownership in feature mode
|
|
under `codex-root`; the required integration-mode resume was rejected by the
|
|
task gate, so the same task was resumed in its existing feature mode without
|
|
changing ownership, branch, or worktree.
|
|
- ML-04 Pi focused suite: `pnpm exec vitest run
|
|
tests/unit/pi-product-tools.test.ts tests/unit/pi-extension-bundle.test.ts
|
|
tests/unit/pi-extension-host.test.ts --maxWorkers=1` — 3 files / 23 tests
|
|
passed.
|
|
- ML-04 Data Service/projector + Pi focused suite:
|
|
`pnpm exec vitest run tests/unit/data-service-client.test.ts
|
|
tests/unit/data-service-routes.test.ts
|
|
tests/unit/data-service-server-registration.test.ts
|
|
tests/unit/coding-conversation-contracts.test.ts
|
|
tests/unit/coding-conversation-timeline.test.tsx
|
|
tests/unit/coding-product-tools-facade.test.ts
|
|
tests/unit/pi-extension-ui-projector.test.ts
|
|
tests/unit/pi-product-tools.test.ts tests/unit/pi-extension-bundle.test.ts
|
|
tests/unit/pi-extension-host.test.ts --maxWorkers=1` — 10 files / 62 tests
|
|
passed.
|
|
- ML-04 `pnpm typecheck`: passed.
|
|
- ML-04 `pnpm lint:check`: passed with 0 errors and the same 5 pre-existing
|
|
warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
|
- ML-04 `git diff --check`: passed after the foreign task-record cleanup.
|
|
- ML-05 source focused/loopback suite:
|
|
`pnpm exec vitest run tests/unit/preview-data-session.test.ts
|
|
tests/unit/data-service-routes.test.ts tests/unit/coding-core-routes.test.ts
|
|
tests/unit/agent-browser-core.test.ts
|
|
tests/unit/coding-attachments-routes.test.ts --maxWorkers=1` — 5 files /
|
|
107 tests passed.
|
|
- ML-05 adjacent Data Service/client regressions:
|
|
`pnpm exec vitest run tests/unit/data-service-client.test.ts
|
|
tests/unit/data-service-routes.test.ts
|
|
tests/unit/data-service-server-registration.test.ts
|
|
tests/unit/coding-conversation-contracts.test.ts
|
|
tests/unit/coding-conversation-timeline.test.tsx
|
|
tests/unit/coding-product-tools-facade.test.ts
|
|
tests/unit/pi-extension-ui-projector.test.ts tests/unit/pi-product-tools.test.ts
|
|
tests/unit/pi-extension-bundle.test.ts tests/unit/pi-extension-host.test.ts
|
|
--maxWorkers=1` — 10 files / 62 tests passed.
|
|
- ML-05 `pnpm typecheck`: passed.
|
|
- ML-05 `pnpm lint:check`: passed with 0 errors and the same 5 pre-existing
|
|
warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
|
- ML-05 `pnpm build`: passed Vite, Electron, Pi runtime, and Windows NSIS
|
|
packaging; the existing dynamic-import/chunk, optional dependency, and
|
|
absent optional packaged-resource warnings remained visible.
|
|
- ML-05 `pnpm test:electron:windows`: 2 files / 4 tests passed.
|
|
- ML-05 `git diff --check`: passed; the only coordinator deletion is the
|
|
foreign ML-05 task record, and the source worktree retains it.
|
|
- ML-05 exclusion scan over the merged diff found no
|
|
`injectProjectData`, `__MAKELORE_DATA__`,
|
|
`Page.addScriptToEvaluateOnNewDocument`, script-ID tracking, or navigation
|
|
injection markers.
|
|
- ML-06 was integrated from source commit
|
|
`992a0a68d743f766f19bc34c245adca4431ba321` at the exact ML-05 frontier
|
|
`14fec701086f60d78466b8e1cc3fb57ca8d7e200` as coordinator commit `38d63a9`
|
|
(`feat(agent-browser): add opt-in preview data injection`), with no
|
|
cherry-pick conflict. The change adds only the explicit Agent Browser
|
|
preview-data opt-in, exact-Origin CDP pre-document script lifecycle,
|
|
child-session tracking/cleanup, and Main/session invalidation wiring. The
|
|
foreign ML-06 task record was removed from this coordinator after
|
|
cherry-pick; the source record remains in
|
|
`D:\Datas\OthersProjects\makelore-ml06-agent-browser-injection-2c7e91a4`.
|
|
The ML-07 frontier is `38d63a9` plus this coordinator cleanup/record commit.
|
|
- ML-06 focused Vitest:
|
|
`pnpm exec vitest run tests/unit/agent-browser-core.test.ts
|
|
tests/unit/agent-browser-routes.test.ts tests/unit/pi-product-tools.test.ts
|
|
tests/unit/coding-core-routes.test.ts --maxWorkers=1` — 4 files / 122 tests
|
|
passed.
|
|
- ML-05 preview regressions after ML-06:
|
|
`pnpm exec vitest run tests/unit/preview-data-session.test.ts
|
|
tests/unit/data-service-routes.test.ts tests/unit/coding-core-routes.test.ts
|
|
tests/unit/agent-browser-core.test.ts
|
|
tests/unit/coding-attachments-routes.test.ts --maxWorkers=1` — 5 files /
|
|
120 tests passed.
|
|
- ML-06 `pnpm test:electron:windows`: 2 files / 4 tests passed.
|
|
- ML-06 `pnpm typecheck`: passed.
|
|
- ML-06 `pnpm lint:check`: passed with 0 errors and the same 5 pre-existing
|
|
warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
|
- ML-06 `pnpm build:vite`: passed for renderer, Main, preload, and utility
|
|
worker; existing dynamic-import and large-chunk warnings remained visible.
|
|
- ML-06 full E2E `pnpm test:e2e`: 25 tests passed and 1 existing test failed
|
|
at `tests/e2e/pi-coding-first-chat.spec.ts:575` because the `当前对话模型`
|
|
combobox remained disabled until timeout. A direct rerun of that test
|
|
reproduced the same timeout; this is not an ML-06 injection path and is not
|
|
counted as an E2E pass.
|
|
- ML-06 boundary checks passed: no new `BrowserWindow` or preload was added,
|
|
the ordinary arbitrary-URL path remains data-free, and the expected changed
|
|
path list contains only Agent Browser/session wiring, route/Pi propagation,
|
|
focused tests, and the task record.
|
|
- ML-06 `git diff --check`: passed after foreign task-record cleanup.
|
|
- ML-07 focused SDK/Skill assets:
|
|
`pnpm exec vitest run tests/unit/data-service-sdk-assets.test.ts
|
|
--maxWorkers=1` — after normalizing coordinator checkout line endings to the
|
|
source's canonical LF bytes, 1 file / 14 tests passed. The initial checkout
|
|
run had 13 passed and 1 frontmatter assertion failure caused solely by
|
|
CRLF; the normalized working files hash exactly to their committed blobs.
|
|
- ML-07 adjacent registry/display/resource/Pi suite:
|
|
`pnpm exec vitest run tests/unit/data-service-sdk-assets.test.ts
|
|
tests/unit/skill-display.test.ts tests/unit/pi-resource-loader.test.ts
|
|
tests/unit/pi-product-tools.test.ts --maxWorkers=1` — 4 files / 34 tests
|
|
passed. Packaged resource listing includes `SKILL.md`, `assets/`,
|
|
`assets/makelore-data.ts`, and `assets/makelore-data.js`.
|
|
- ML-07 full unit verification: the normal parallel runner had 1 Vitest fork
|
|
worker exit unexpectedly after 187/188 files and 1606 passed tests (2
|
|
skipped), with no assertion failure. The serial rerun
|
|
`pnpm exec vitest run --exclude tests/unit/coding-chat-pressure.test.tsx
|
|
--maxWorkers=1` passed 188 files / 1610 tests with 2 skipped, followed by
|
|
`pnpm exec vitest run tests/unit/coding-chat-pressure.test.tsx
|
|
--maxWorkers=1` — 1 test passed.
|
|
- ML-07 `pnpm typecheck`: passed.
|
|
- ML-07 `pnpm lint:check`: passed with 0 errors and the same 5 pre-existing
|
|
warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
|
- ML-07 `pnpm build`: passed Vite, Electron, Pi runtime, and Windows NSIS
|
|
packaging; existing dynamic-import/chunk, optional dependency, and absent
|
|
optional packaged-resource warnings remained visible.
|
|
- ML-07 `pnpm test:electron:windows`: 2 files / 4 tests passed.
|
|
- ML-07 affected E2E:
|
|
`pnpm exec playwright test tests/e2e/project-configuration-skills.spec.ts
|
|
--config=playwright.config.ts` — 1 test passed.
|
|
- ML-07 SDK static boundary checks found no cloud credential, external URL,
|
|
retry call, cache/offline storage, Firebase, or Works Square behavior; the
|
|
only Authorization/Bearer use is the injected local preview token required
|
|
by the contract. Skill checks confirmed inspect → explicit
|
|
`data_service_configure` → `agent_browser` → read-back → report ordering and
|
|
the exact-copy/no-op/conflict policy.
|
|
- ML-07 root-scratch and boundary scans passed; changed paths are limited to
|
|
the Data Service skill assets, registry/display registration, focused tests,
|
|
and the task record. `git diff --check` passed after foreign task-record
|
|
cleanup.
|
|
|
|
## Follow-ups
|
|
|
|
- ML-02 identity choice and legacy/independent-copy UX, ML-03 Main Data
|
|
Service, ML-04 Pi Data Service tools, ML-05 preview data sessions, ML-06
|
|
Agent Browser pre-document injection, and ML-07 generated SDK/Skill assets
|
|
are integrated. ML-04 consumed the `DataServiceOperations` seam from the
|
|
recorded ML-03 frontier and preserves its active-project identity and
|
|
trusted project-path constraints. ML-05 and ML-06 preserve the Main-owned
|
|
credential boundary; ML-06 supplies the narrow exact-Origin injection seam
|
|
and ML-07 consumes only that local capability while keeping ordinary
|
|
arbitrary URL opens data-free.
|
|
- The broader ML-00 through ML-09 coordinator task remains in progress; this
|
|
record does not claim full client-suite, build, review, or release proof.
|
|
|
|
## Promotion Candidates
|
|
|
|
- None recorded.
|