docs: record project-wide scaffold activation

This commit is contained in:
2026-09-05 12:39:18 +08:00
parent 6710527e8f
commit 5e0a091955
11 changed files with 147 additions and 133 deletions

View File

@@ -4,6 +4,19 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Project Scaffold project-wide activation source
`300ac89a81409440aac84ff45b1d9ca2fa186629` from task
`20260905-project-plugin-scope-7c4e9a21` is integrated onto local `main` as
`6710527e8f7150a6c4997d566a380454e33f455e`. The code-owned
`makelore.project-scaffold` remains Account-acquired and project-enabled, but no longer
has an Agent-assignment gate or partner-assignment action. Main now materializes its
complete Skill set for every parent Agent in the enabled project; child Agents remain
empty, active generations keep their existing freeze boundary, and all other Plugins
retain their assignment semantics. Source verification passed 45 focused and 87
adjacent tests, typecheck, lint with 0 errors/5 unchanged warnings, pressure, and all
Vite targets. One unrelated two-second Pi real-process timing assertion failed in the
ordinary full run and passed 6/6 in isolation. A rebuilt/installed-client smoke remains
pending; local source integration does not replace an already installed binary.
- Unified Plugin workspace bundled-delivery fix source
`6bd9287c879dca93da11e17533f84e3535fc656a` from task
`20260905-plugin-download-action-6c8e4a21` is integrated onto local `main` as
@@ -36,8 +49,10 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
install, build, upload, submit, or approve. Its `.mjs` uses the non-overridable
application Node exposed as `MAKELORE_NODE_EXECUTABLE` and is executable only because
it ships in the fixed signed-client resource root. Downloadable Marketplace artifacts
remain text/image-only and reject `.mjs`; acquisition, project enablement, Agent
assignment, and immutable bundled Release/Admission remain distinct. Main and Works
remain text/image-only and reject `.mjs`; acquisition, project enablement, and
immutable bundled Release/Admission remain distinct. Project Scaffold is project-wide
after enablement and has no Agent-assignment state; other Plugins retain assignment.
Main and Works
Square retain build, preflight, artifact,
upload, immutable Release, and review authority. Exact integration verification passed
the 12-test scaffold suite, 123 focused Vitest tests, typecheck, scoped ESLint, and the
@@ -786,4 +801,4 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
## Last Updated
2026-09-04
2026-09-05

View File

@@ -1,116 +0,0 @@
# Task: Make project-scoped Plugins active without partner assignment
## Identity
- Task ID: 20260905-project-plugin-scope-7c4e9a21
- Mode: Feature
- Branch: codex/20260905-project-plugin-scope-7c4e9a21-project-plugin-scope
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260905-project-plugin-scope-7c4e9a21
- Base commit: d642d7607c26dee01ef65b4e70dd756465dea16a
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Reproduce whether the code-owned bundled `makelore.project-scaffold` Skill is
currently excluded from a parent Agent when the Plugin is acquired and enabled for
the project but not explicitly assigned to that Agent.
- Change only Project Scaffold activation semantics so project enablement is sufficient
for parent-Agent materialization; preserve Account Library acquisition, child-worker
emptiness, frozen worker generations, and every other Plugin's assignment behavior.
- Remove Project Scaffold's partner-assignment action/status from the unified Plugins
workspace and add focused runtime plus Renderer regressions.
- Record the accepted user decision as an Integration promotion candidate; this Feature
task does not edit canonical architecture, domain, or ADR files.
## Intent And Constraints
- Concurrent Task Gate: Passed. The exact owner/worktree/branch/base identity was
verified through `task_context.py status --json`; related Plugin download/status
tasks are Ready for Integration and have no active writer overlapping this scope.
- Planning Gate: Passed after loading the project entry docs, current state, decision
index, ADR-008, architecture/data flow/module map, business rules, success criteria,
glossary, evidence, reflection, commitments, stale items, and relevant peer records.
- Project Context Loaded:
- Positioning: MakeLore Code is a Main-owned Pi runtime whose Plugin state is projected
through existing Marketplace/project/Agent authorities rather than Renderer-owned
lifecycle state.
- Current focus: official bundled Project Scaffold delivery and unified `/plugins`
presentation are already integrated; the remaining question is activation scope.
- Applicable decision: ADR-008 previously required acquisition, project enablement,
and Agent assignment. The user's explicit 2026-09-05 decision supersedes only the
assignment requirement for Project Scaffold.
- Architecture boundaries: effective resolution remains Main-owned; Renderer only
projects actions. Parent workers may receive the Skill, child workers remain empty,
and active workers keep frozen resources until replacement/settlement.
- Current state: `makelore.project-scaffold` ships in the signed client and has no
device download path; Account acquisition and project enablement remain distinct.
- Known risk: hiding the UI assignment action without changing the effective resolver
would leave the Skill unusable; broadening all Plugin Skills would silently alter
unrelated assignment semantics.
- Relevant commitment: final packaged Project Scaffold activation still requires a
rebuilt client and installed-client smoke; workspace tests do not prove that step.
- Relevant peers: the bundled-status integration and device-action-gap tasks only
correct delivery presentation/package evidence; neither changes activation scope.
- TDD boundary: first assert the public effective-resolver and Plugins-page behavior at
acquired + project-enabled + unassigned state, then implement the narrowest shared
activation-scope rule that makes those assertions pass.
- Do not modify the occupied client root, Server, Marketplace contracts, Package Store,
billing, hosted execution, local Device Packages, or unrelated Plugin assignments.
## Outcome
- Confirmed the defect at the Main-owned effective-resolver seam: an acquired,
project-enabled Project Scaffold Plugin with no Agent assignment was rejected as
`skill_unassigned`, so removing only the Renderer action would not have activated it.
- Added one narrow code-owned project-wide activation invariant for
`makelore.project-scaffold`. Its full Skill set now materializes for every parent Agent
after Account acquisition and project enablement; disabled projects remain blocked and
child Agents remain empty.
- Updated the unified Plugins workspace so Project Scaffold no longer offers partner
assignment. Cards and details now describe its scope as `随项目启用` / `生效范围`.
- Preserved existing assignment behavior for Game Resource, Data Service, Marketplace,
and local Plugins. No manifest schema, server contract, Package Store, billing, or
worker-lifecycle authority was added.
## Verification
- TDD RED: the focused resolver/model/page slice produced 3 expected failures and 42
passes: Project Scaffold returned `skill_unassigned`, the assignment command remained,
and the project-wide scope copy was absent.
- Focused GREEN: 3 files / 45 tests passed.
- Adjacent Plugin/runtime regression: 12 files / 87 tests passed, including effective
resolution, composition, lifecycle, manifest/routes, Pi resource/worker opening,
Project Scaffold, and unified Plugins projection/controller/query/page behavior.
- `corepack pnpm run typecheck`: passed.
- Scoped ESLint: passed. Full `corepack pnpm run lint:check`: 0 errors and 5 unchanged
warnings in untouched Home/Makelore files.
- Full regular unit suite: 225 files passed and 1 unrelated real-process timing test
failed (`pi-agent-server-process-real`, 2630 ms against a 2000 ms threshold); 1888 tests
passed and 2 skipped. The exact failed file then passed in isolation, 6/6.
- Isolated pressure suite: 1/1 passed.
- `corepack pnpm run build:vite`: Renderer, Main, Preload, and utility builds passed with
existing Browserslist/import/chunk warnings.
- `git diff --check`: passed.
## Follow-ups
- The Integration task must promote the Project Scaffold activation rule into ADR-008,
module map, data flow, and business rules, then rebuild/install the client and smoke-test
an acquired + project-enabled + unassigned parent Agent. Workspace tests do not prove
the installed-client generation was replaced.
## Promotion Candidates
- Update ADR-008, module map, data flow, and business rules during Integration so
`makelore.project-scaffold` is documented as account-acquired + project-enabled and
automatically available to parent Agents, with no partner-assignment state.
- Evidence: focused resolver RED reproduced `skill_unassigned`; the corrected focused
and adjacent suites pass while Game Resource retains `open_agent_assignment`.
- Future impact: Plugin activation-scope changes must update the code-owned scope
predicate and both Main/Renderer regressions; Project Scaffold assignments already
stored in project data become inert but may remain preserved.
- Semantic conflict: supersedes only ADR-008's assignment requirement for Project
Scaffold, not the general assignment model for other Plugins.
- Human confirmation required: No; the user explicitly chose project-level activation
on 2026-09-05.

View File

@@ -0,0 +1,105 @@
# Task: Integrate project-wide Project Scaffold activation
## Identity
- Task ID: 20260905-project-plugin-scope-integration-4d8a2c71
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: d642d7607c26dee01ef65b4e70dd756465dea16a
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate reviewed source commit `300ac89a81409440aac84ff45b1d9ca2fa186629`
onto local client `main` from exact base
`d642d7607c26dee01ef65b4e70dd756465dea16a`.
- Promote the accepted Project Scaffold activation exception into canonical project
memory: Account acquisition and project enablement remain required, but explicit
partner assignment is not; all parent Agents in the enabled project receive the
Skill and child Agents remain empty.
- Preserve every other Plugin's assignment behavior and the three pre-existing
untracked task records in the root worktree byte-for-byte.
## Intent And Constraints
- Concurrent Task Gate: Passed. The completed prior Integration owner was released
only after confirming the root had no tracked changes and exactly the three
previously adopted untracked task records. This task then acquired `main` from the
exact base using `--adopt-existing`; no active task owns the same product paths or
semantics.
- Planning Gate: Passed after loading the entry memory, current state, decision index,
ADR-008, architecture overview/module map/data flow, business rules, success
criteria, glossary, evidence, reflection, commitments, stale items, the source task
record, and the prior Integration record.
- Project Context Loaded:
- Positioning: MakeLore Code uses Electron Main as the Plugin/runtime authority;
Renderer pages project state and issue existing commands rather than owning a
second lifecycle model.
- Current state: Project Scaffold is a code-owned bundled Skill delivered with the
client, but the prior effective resolver still required Agent assignment after
Account acquisition and project enablement.
- Applicable decision: the user's explicit 2026-09-05 decision amends only
`makelore.project-scaffold` to be project-wide. It does not remove assignment from
Game Resource, Data Service, local packages, or other Marketplace Plugins.
- Architecture boundary: parent workers receive the Scaffold Skill from the
Main-owned effective resolver; child workers remain empty and running generations
stay frozen until their normal replacement/settlement boundary.
- Known risk: updating only the UI would leave runtime materialization blocked;
generalizing the exception would silently change unrelated Plugin authorization.
- Relevant commitment: source/build verification does not prove that an already
installed client has been rebuilt and replaced; that remains a release smoke step.
- Apply the source with `git cherry-pick --no-commit`, adopt its exact task record before
committing, and verify the source/product trees. This follows the recorded
Integration reflection and avoids committing an unowned source record.
- Do not push, publish, package, deploy, reset, stash, clean, or modify the three
pre-existing untracked task records.
## Outcome
- Applied reviewed source `300ac89a81409440aac84ff45b1d9ca2fa186629`
from its exact parent with `git cherry-pick --no-commit`, adopted the unchanged
source task record, and committed the product change on local `main` as
`6710527e8f7150a6c4997d566a380454e33f455e`.
- Confirmed the source and product commit trees are identical at
`7391af053cfc30bd4100cc24590c6560297affdd`; the integration introduced no conflict
resolution or behavioral delta.
- Promoted the accepted project-wide activation rule into ADR-008, the decision index,
system overview, module map, data flow, business rules, current state, evidence, and
release commitment. General Plugin assignment remains intact; only Project Scaffold
has no assignment gate.
- Removed the duplicate source task record only from the `main` documentation
checkpoint. The source branch and its task record remain unchanged and auditable.
- Preserved the three pre-existing untracked task records byte-for-byte and did not
stage, commit, delete, move, or otherwise modify them.
## Verification
- Integration-specific checks:
- source parent equals integration base `d642d7607c26dee01ef65b4e70dd756465dea16a`;
- staged source task record hash matched the source commit before product commit;
- source/product Git tree equality passed at
`7391af053cfc30bd4100cc24590c6560297affdd`;
- `git diff --check` passed for both the product patch and documentation checkpoint;
- `check_project_docs.py` passed.
- Adopted reviewed source evidence because the root checkout has no installed
`node_modules`: TDD RED produced 3 expected failures/42 passes; focused GREEN passed
45 tests; adjacent Plugin/runtime regression passed 87 tests; typecheck passed; full
lint had 0 errors/5 unchanged warnings; pressure passed 1/1; all Vite targets passed.
- Source full regular unit run passed 1,888 tests with 2 skips and one unrelated
two-second Pi real-process timing miss; that exact file passed 6/6 in isolation.
- Task-aware documentation drift and task-context completion are required after the
documentation checkpoint commit and are recorded by the final Integration gate.
## Follow-ups
- Rebuild and install a client from this `main`, then smoke-test an Account-acquired,
project-enabled, unassigned Project Scaffold with two parent Agents and one child:
both parents must see the Skill and the child must remain empty. This is a release
acceptance step, not a blocker for the local source merge.
## Promotion Candidates
- None. The feature task's confirmed semantic promotion is incorporated in this
Integration checkpoint.