chore(coding): record ML-09 remediation merge
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 through ML-08 integrated; ML-09/X-01 pending)
|
||||
- Status: In Progress (ML-01 through ML-09 integrated; review/X-01 pending)
|
||||
|
||||
## Scope
|
||||
|
||||
@@ -162,6 +162,19 @@
|
||||
changes. The five required verification commands and their one known E2E
|
||||
failure are recorded below. The product HEAD immediately before this
|
||||
documentation update was `a981b07faaa64b20bf9aef6353218fef26695ca2`.
|
||||
- Integrated ML-09 remediation source commit
|
||||
`b5060f254bfdb3a748739b74b1f583cc0236fa7c` from its exact parent
|
||||
`239e20d2cf2242d636f9d42684f76f5777d9d1ee` as coordinator product commit
|
||||
`38843e091fbbe68ec934336b8ed3a08c955afb28`, with no cherry-pick conflict.
|
||||
The eight accepted review findings are all represented in the coordinator:
|
||||
normal Pi parent Data Service allowlisting; camelCase Skill input;
|
||||
credential-free HTTP/HTTPS loopback Origins; browser-generation lifecycle
|
||||
fencing; README/Skill workflow documentation; narrow shared route parsers;
|
||||
removal of the unused Agent Browser `onLifecycle` option; and removal of the
|
||||
unused `handleDataServiceRoute` alias. The foreign ML-09 task record was
|
||||
deleted from this coordinator while its source record remains in
|
||||
`D:\Datas\OthersProjects\makelore-ml09-data-service-remediation-5e7c2a91`.
|
||||
The product frontier after this merge is `38843e091fbbe68ec934336b8ed3a08c955afb28`.
|
||||
|
||||
## Verification
|
||||
|
||||
@@ -382,6 +395,48 @@
|
||||
20260826-makelore-data-service-client-b72e4c19` check passed using the
|
||||
configured bundled Python runtime. Test/build output remained ignored and
|
||||
the worktree was clean before this task-record update.
|
||||
- ML-09 precondition: coordinator was clean at exact ML-08 HEAD
|
||||
`239e20d2cf2242d636f9d42684f76f5777d9d1ee`; the remediation source parent
|
||||
matched that HEAD exactly and cherry-pick produced product commit
|
||||
`38843e091fbbe68ec934336b8ed3a08c955afb28`.
|
||||
- ML-09 focused remediation ledger: the 10-file equivalent set
|
||||
(`data-service-sdk-assets`, `data-service-server-registration`,
|
||||
`pi-rpc-foundation`, `pi-worker-process-real`, `preview-data-session`,
|
||||
`agent-browser-core`, `agent-browser-routes`, `data-service-routes`,
|
||||
`pi-extension-bundle`, and `pi-extension-ui-projector`) passed with 142
|
||||
tests and 2 skipped; Vitest reported 16.45s.
|
||||
- ML-09 adjacent regressions covering tool profile, Data Service client/routes,
|
||||
preview/browser adapter, Skill resource, and Pi host paths: 8 files / 77
|
||||
tests passed; Vitest reported 6.75s.
|
||||
- ML-09 `pnpm typecheck`: exit 0, passed, approximately 5.31s.
|
||||
- ML-09 `pnpm lint:check`: exit 0, passed with 0 errors and the same 5
|
||||
existing warnings in `src/pages/Home/index.tsx` and
|
||||
`src/pages/Makelore/index.tsx`.
|
||||
- ML-09 `pnpm build`: exit 0, passed through Vite, staged Pi runtime, and
|
||||
Windows Electron/NSIS packaging. Existing dynamic-import/chunk-size,
|
||||
optional-resource, npm shell deprecation, absent optional resource, and
|
||||
non-fatal NSIS patch/signing warnings remained visible.
|
||||
- ML-09 `pnpm test:electron:windows`: exit 0, 2 files / 4 tests passed
|
||||
(Vitest 1.04s; command approximately 2.28s).
|
||||
- ML-09 affected E2E `pnpm exec playwright test
|
||||
tests/e2e/project-configuration-skills.spec.ts --config=playwright.config.ts`:
|
||||
exit 0, 1 test passed (2.9s).
|
||||
- ML-09 affected Pi E2E `pnpm exec playwright test
|
||||
tests/e2e/pi-coding-first-chat.spec.ts --config=playwright.config.ts`:
|
||||
exit 1, 1 test passed and 1 failed (33.8s). The known failure remains at
|
||||
`tests/e2e/pi-coding-first-chat.spec.ts:575`: `当前对话模型` resolves to a
|
||||
disabled combobox and `selectOption` times out after 30s. It is not counted
|
||||
as an E2E pass and no remediation diff evidence connects it to ML-09.
|
||||
- ML-09 eight-item boundary checks all passed: the exact ten Data Service
|
||||
names are used by the normal Pi parent default while child profiles remain
|
||||
explicit and Data Service-free; Skill input uses only `injectProjectData`;
|
||||
loopback Origin and generation guards are present; README/Skill docs are
|
||||
present; both route modules use the narrow parser module while retaining
|
||||
route-specific failures; `subscribeLifecycle` remains without
|
||||
`onLifecycle`; and only `handleDataServiceRoutes` remains. The merged path
|
||||
audit matched the expected 15 source paths with no extra or missing path,
|
||||
and the added-lines scope scan found no Firebase, Redis, retry/cache, or
|
||||
published-runtime expansion.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
@@ -395,13 +450,13 @@
|
||||
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 now has ML-08 command verification but does not claim ML-09 review,
|
||||
release proof, or live acceptance. The client/server draft PR promotion is
|
||||
externally blocked in this environment because GitLab HTTPS credentials are
|
||||
unavailable non-interactively and `gh`/`glab` are not installed; no draft PR
|
||||
is claimed from this worktree.
|
||||
- ML-09 remains pending for repository-local review and one remediation
|
||||
implementer if findings require it. X-01 remains a TODO after both reviews:
|
||||
record now has ML-08 and ML-09 verification but does not claim review
|
||||
closure, release proof, or live acceptance. The client/server draft PR
|
||||
promotion is externally blocked in this environment because GitLab HTTPS
|
||||
credentials are unavailable non-interactively and `gh`/`glab` are not
|
||||
installed; no draft PR is claimed from this worktree.
|
||||
- ML-09 remediation is integrated; review closure remains pending, including
|
||||
the known Pi model-combobox E2E deviation. X-01 remains a TODO after review:
|
||||
exercise real PostgreSQL with a signed-in MakeLore preview and record live
|
||||
acceptance separately; repository E2E results cannot substitute for it.
|
||||
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
# Task: ML-09 data service remediation
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260827-ml09-data-service-remediation-5e7c2a91
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260827-ml09-data-service-remediation-5e7c2a91-ml09-data-service-remediation
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-ml09-data-service-remediation-5e7c2a91
|
||||
- Base commit: 239e20d2cf2242d636f9d42684f76f5777d9d1ee
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- ML-09 repository-local remediation on the exact ML-08 client head
|
||||
`239e20d2cf2242d636f9d42684f76f5777d9d1ee`.
|
||||
- Resolve every accepted Standards/Spec review finding in one focused pass:
|
||||
normal Pi worker Data Service tool allowlist, Pi camelCase Skill input,
|
||||
loopback preview Origin acceptance, browser-generation lifecycle fencing,
|
||||
README/Skill documentation, narrow parser sharing, and removal of two
|
||||
unused compatibility seams.
|
||||
- Keep the remediation limited to existing Data Service, Pi, Skill, preview,
|
||||
routing, and tests; do not alter the unrelated Pi E2E selector failure.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Follow the MakeLore Data Service P0 specification sections 9.4, 10.1-10.3,
|
||||
11-13 and ticket ML-09 in the accepted ticket graph. Main remains the only
|
||||
Works credential owner; preview capability remains explicit, exact-Origin,
|
||||
data-only, loopback-bound, and generation-bound.
|
||||
- Preserve child explicit profiles, existing Agent Browser abstraction, route
|
||||
auth/error/response ownership, ten public Data Service operations, and the
|
||||
fixed SDK/Skill protocol. Do not add a generic route/repository/wrapper,
|
||||
Firebase compatibility, retries, broad CORS, or unrelated E2E changes.
|
||||
- Confirmed facts: the client coordinator has integrated ML-01 through ML-08
|
||||
and is clean at the stated base; the server contract/ADR are the canonical
|
||||
cross-repository inputs. The known full-E2E Pi model-combobox timeout is
|
||||
pre-existing and outside this remediation unless red evidence ties it to
|
||||
this diff. Review ledger accepted eight findings: allowlist, camelCase
|
||||
Skill field, loopback Origin, generation equality, README, narrow parser
|
||||
sharing, unused `onLifecycle`, and unused `handleDataServiceRoute`.
|
||||
- Unverified external inputs remain signed-in live acceptance, deployed server
|
||||
state, and production packaging; this task cannot claim them.
|
||||
|
||||
## Planning Gate
|
||||
|
||||
- Result: Passed on 2026-08-27.
|
||||
- Concurrent gate ran `check_project_docs.py`, then `task_context.py start`
|
||||
with an occupied coordinator as source, producing the isolated worktree and
|
||||
matching Git-common ownership. `status --json` verified the task ID, feature
|
||||
mode, absolute worktree, branch, and exact base.
|
||||
- Read the active task record, project positioning, integrated current state,
|
||||
decision index, system overview, architecture/domain/evidence/reflection/
|
||||
commitment/stale indexes, client coordinator scope, and the server's
|
||||
canonical Data Service spec, ticket graph, integration contract, and ADR.
|
||||
- Other active Data Service coordinator scope is read-only context; it owns
|
||||
the parent integration worktree, while this task owns only this remediation
|
||||
worktree. ML-01 through ML-08 source worktrees are released or integrated;
|
||||
no semantic file-ownership conflict is unresolved.
|
||||
|
||||
## Plan
|
||||
|
||||
1. Inspect current Pi tool registration, Skill assets, preview session/server,
|
||||
route modules, shared route helpers, and lifecycle wiring; add red tests for
|
||||
each accepted finding before the smallest corresponding implementation.
|
||||
2. Implement the eight fixes without widening P0 boundaries; run affected
|
||||
focused suites after each cohesive group.
|
||||
3. Run full unit (including pressure), typecheck, lint, build, Electron, and
|
||||
affected E2E checks available in this environment; retain any real
|
||||
prerequisite or pre-existing failure as an explicit deviation.
|
||||
4. Run diff/doc-drift checks, update this task record with outcome and evidence,
|
||||
commit once, and complete the Task Documentation Gate.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Completed the eight accepted ML-09 remediation findings on the exact ML-08
|
||||
client head:
|
||||
- Normal Pi parent workers now default to the exact ten Data Service tools
|
||||
from the shared contract; read-only and coding child profiles remain their
|
||||
original explicit arrays, and the packaged child proof rejects all parent
|
||||
product tools including Data Service tools.
|
||||
- The bundled Skill now uses Pi's camelCase `injectProjectData: true` open
|
||||
input. The raw Host HTTP snake_case adapter remains separate.
|
||||
- Preview sessions accept credential-free HTTP and HTTPS loopback Origins,
|
||||
including default ports, while retaining loopback, exact-origin, no-path,
|
||||
and no-credentials restrictions. Lifecycle invalidation is fenced to the
|
||||
session's current browser generation.
|
||||
- README now names the fifth opt-in `data-service` Skill and documents its
|
||||
short inspect/confirm/configure/SDK/preview read-back workflow without
|
||||
duplicating the protocol.
|
||||
- Identical Data Service record/body/path/query/revision/data parsers now
|
||||
live in the narrow `data-service-parsers.ts` module. Each route retains its
|
||||
own parser failure type/messages, authentication, response projection, and
|
||||
CORS behavior.
|
||||
- Removed the unused Agent Browser constructor `onLifecycle` option and the
|
||||
unused `handleDataServiceRoute` alias; production `subscribeLifecycle` and
|
||||
`handleDataServiceRoutes` remain.
|
||||
|
||||
## Verification
|
||||
|
||||
- RED: the new allowlist, Skill, Origin/generation, README, and alias
|
||||
assertions failed at the unfixed base as expected.
|
||||
- Focused remediation suites: 10 files, 142 passed, 2 skipped.
|
||||
- Full unit and pressure suites: 188 files, 1,612 passed, 2 skipped; pressure
|
||||
suite 1 passed.
|
||||
- `pnpm run typecheck`: passed.
|
||||
- `pnpm run lint:check`: passed with five existing warnings in
|
||||
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; no errors.
|
||||
- `pnpm run build`: passed, including Vite, staged Pi runtime, and Windows
|
||||
Electron packaging. Existing chunk-size, optional-resource, and NSIS patch
|
||||
warnings remained non-fatal.
|
||||
- `pnpm run test:electron:windows`: 2 files, 4 passed.
|
||||
- Affected E2E: `project-configuration-skills.spec.ts` 1 passed. The Pi chat
|
||||
spec had 1 passed and 1 timeout on the known model-combobox selector; the
|
||||
failure is the same pre-existing baseline issue and has no diff evidence,
|
||||
so it was not changed.
|
||||
- `git diff --check` and the project-docs ownership/drift checks passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Parent integration must merge this single remediation commit into the client
|
||||
coordinator branch, then run the cross-repository X-01 against real
|
||||
PostgreSQL and a logged-in MakeLore preview. This task did not claim live
|
||||
acceptance or server deployment state.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded; the remediation changes are repository-local and the
|
||||
canonical cross-repository contract/ADR already describe the retained
|
||||
boundaries.
|
||||
Reference in New Issue
Block a user