chore(coding): record ML-03 integration
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-data-service-client-b72e4c19
|
||||
- Base commit: f2456039230f68e3ecb2c8653fc3379c23bbe5ce
|
||||
- Owner: codex-root
|
||||
- Status: In Progress (ML-01 and ML-02 integrated)
|
||||
- Status: In Progress (ML-01 through ML-03 integrated)
|
||||
|
||||
## Scope
|
||||
|
||||
@@ -84,6 +84,18 @@
|
||||
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.
|
||||
|
||||
## Verification
|
||||
|
||||
@@ -124,12 +136,27 @@
|
||||
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.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- ML-02 identity choice and legacy/independent-copy UX is integrated. ML-03
|
||||
must use
|
||||
`requireActiveRealProjectWithIdentity()` for all Data Service callers.
|
||||
- ML-02 identity choice and legacy/independent-copy UX plus ML-03 Main Data
|
||||
Service are integrated. ML-04 must consume the `DataServiceOperations` seam
|
||||
from the recorded ML-03 frontier and preserve its active-project identity
|
||||
and trusted project-path constraints.
|
||||
- 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.
|
||||
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
# Task: Implement ML-03 Main cloud client and Host routes
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260826-ml03-main-data-service-7c4e2b18
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260826-ml03-main-data-service-7c4e2b18-ml03-main-data-service
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-ml03-main-data-service-7c4e2b18
|
||||
- Base commit: 5ac08d509f8962a3c2c0ec1b1afef84a435f116d
|
||||
- Owner: codex-ml03
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Implement the Main-owned Data Service cloud client and the fixed operational
|
||||
Host routes from ML-03, including strict DTO/error projection, session token
|
||||
refresh/replay, active durable-project resolution, destructive confirmations,
|
||||
and route registration before the Works catch-all.
|
||||
- Expose one `DataServiceOperations` adapter through the coding composition for
|
||||
Host routes and the later Pi product-tool ticket.
|
||||
- Add focused client/adapter/route/registration tests without changing preview
|
||||
sessions, Pi tools, Renderer credential handling, or loopback transport.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Base is the exact post-ML-01 commit `5ac08d509f8962a3c2c0ec1b1afef84a435f116d`.
|
||||
- Keep Works Square session ownership in the existing Main session service. A
|
||||
logical request may replay only once after an authoritative upstream 401;
|
||||
timeout, disconnect, 5xx, and other ambiguous failures are never replayed.
|
||||
- Derive owner/project identity from `requireActiveRealProjectWithIdentity()`;
|
||||
caller-controlled owner, durable project ID, local path, token, and endpoint
|
||||
inputs are not accepted. `listProjects` is the only owner-wide operation.
|
||||
- Keep request and upstream response parsing bounded and strict, project only
|
||||
documented fields, and return the safe Host envelope. Keep canonical project
|
||||
memory unchanged in feature mode.
|
||||
- Preserve existing Host dispatcher behavior and register Data Service before
|
||||
`handleWorksRoutes`; do not add preview capability, generated SDK, Pi tools,
|
||||
or unrelated retry/loopback changes in this ticket.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Implemented the Main-owned Data Service cloud client, strict shared DTOs, and the
|
||||
single `DataServiceOperations` adapter. Active operations resolve the durable ID
|
||||
through `requireActiveRealProjectWithIdentity()`; owner-wide `listProjects` is the
|
||||
only operation without active-project resolution. Request/upstream JSON is bounded,
|
||||
remote DTOs and accepted error context are projected to safe fields, and only an
|
||||
authoritative cloud 401 can trigger one refresh/replay. Ambiguous transport and
|
||||
upstream failures are never retried or exposed.
|
||||
- Added the fixed `/api/works/data-service` Host routes with strict bodies, query
|
||||
allowlists, strong `If-Match` projection, literal destructive confirmations, and
|
||||
no caller-controlled owner, durable project ID, local path, token, or endpoint.
|
||||
Registered the handler before the Works catch-all and added a regression test for
|
||||
that precedence. The owner-wide list supports the documented recovery sequence:
|
||||
identify an orphan, explicitly bind a disposable local project in the UI, then
|
||||
confirm removal while that project is active.
|
||||
- Wired the adapter through coding composition for Host and the later Pi tool slice;
|
||||
no preview sessions, Pi tools, Renderer credentials, second session store, or
|
||||
loopback transport changes were added.
|
||||
|
||||
## Verification
|
||||
|
||||
- `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.
|
||||
- `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` — 0 errors; 5 existing warnings remain in
|
||||
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
||||
- `git diff --check` — passed (only existing LF/CRLF normalization warnings on
|
||||
modified files).
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Run signed-in cross-repository acceptance against the reviewed Works Square server
|
||||
branch, including real PostgreSQL behavior and the UI bind/recovery flow.
|
||||
- ML-04 should consume this `DataServiceOperations` seam for in-process parent-worker
|
||||
tools and preserve the trusted project-path equality check when its context is
|
||||
available.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
Reference in New Issue
Block a user