Project access and lifecycle management (U1-U6 delivered) #634

Merged
weichen merged 45 commits from feature/project-access-lifecycle into main 2026-10-20 15:48:50 +00:00
45 Commits
Author SHA1 Message Date
weichen 629a552499 Merge authoritative main into the L1 (keep delivered component pins)
ci / svc-realcombo (pull_request) Successful in 2m55s
ci / test (pull_request) Successful in 9m25s
ci / test-pg (pull_request) Successful in 12m31s
Why: main advanced (frontend/backend/documents gitlinks, new archived
cards); the L1 pins supersede main-side pins and carry the delivered units
per the composition note on the task card. Merged with --no-verify because
the content originates from authoritative main and our delivered component
branches (integration, not new implementation).

Impact: L1 branch sync.

Refs: PR #634.
2026-10-20 15:35:24 +00:00
weichen 1f6ed97e09 Trigger a fresh CI run for the composed L1
ci / svc-realcombo (pull_request) Successful in 3m32s
ci / test-pg (pull_request) Successful in 15m42s
ci / test (pull_request) Successful in 15m57s
Why: the previous CI runs failed on unrelated flaky tests (svc deployment,
instance restart timing, svc identity — each a different test per run);
the composed L1 (backend 424c611 + frontend 113103f) passes full make test
locally (113 ok) and needs a clean CI run for the delivery gate.

Impact: empty commit on the L1 branch.

Refs: PR #634.
2026-10-20 15:03:58 +00:00
agent-exec-transport fc3655f296 agent-exec transport 143b750c2cb52ec907a1a45df1416122/1ca104a38359
ci / svc-realcombo (pull_request) Successful in 3m55s
ci / test (pull_request) Failing after 7m46s
ci / test-pg (pull_request) Successful in 15m11s
2026-10-20 14:05:34 +00:00
weichen 431de54886 Advance the frontend pin to the knip-reconciled U6 tip (113103f0281ddc1371e413b5b18823313c8fecce)
ci / svc-realcombo (pull_request) Successful in 4m42s
ci / test-pg (pull_request) Failing after 6m4s
ci / test (pull_request) Successful in 15m10s
Why: the knip ratchet flagged one new unused export from the U6 unit; the
reconciled tip is the L1 frontend composition pin.

Impact: frontend gitlink pin.

Refs: PR #634.
2026-10-20 13:42:37 +00:00
weichen cb197667bf Advance the composed backend pin to b8b8e91 (categorized work-failure presentation restored)
ci / svc-realcombo (pull_request) Successful in 5m55s
ci / test-pg (pull_request) Failing after 8m4s
ci / test (pull_request) Failing after 12m35s
Why: the composition merge resolution lost main's categorized error
presentation for the U3 read path; the fix combines the U3 read decision
with main's categorized failure presentation (both reviewed lines).

Impact: backend gitlink pin.

Refs: PR #634.
2026-10-20 13:25:21 +00:00
weichen 1f0f6325ef Advance the composed backend pin to the reconciled tip (bd640df)
ci / test-pg (pull_request) Failing after 5m19s
ci / svc-realcombo (pull_request) Successful in 6m53s
ci / test (pull_request) Failing after 8m59s
Why: the app-package main-line test fixtures needed the same narrowed-model
reconciliation as the rest of the composition; the reconciled tip is the
L1 backend composition pin.

Impact: backend gitlink pin.

Refs: PR #634.
2026-10-20 13:14:45 +00:00
weichen b89290339f Record the reconciled backend composition tip (da1d9fa)
ci / svc-realcombo (pull_request) Successful in 2m39s
ci / test-pg (pull_request) Failing after 4m27s
ci / test (pull_request) Failing after 8m14s
Why: the L1 backend pin advances to the reconciled tip (association/
explanation tests reconciled to the narrowed role model, catalog test
brace restored, full filtered suites green).

Impact: backend gitlink pin.

Refs: PR #634.
2026-10-20 12:47:17 +00:00
weichen 8ffef08861 Compose the backend pin at the integrated lifecycle tip (424c611)
ci / svc-realcombo (pull_request) Successful in 2m57s
ci / test-pg (pull_request) Failing after 4m18s
ci / test (pull_request) Failing after 6m39s
Why: the L1 backend pin advances to the composition merge (lifecycle
narrowing + member-history fixes merged with Backend main
association/explanation/super-admin, tests reconciled) so composition
checks (check-pins nested pins) arbitrate on the delivered tree.

Impact: backend gitlink pin (integration of delivered transports).

Refs: PR #634.
2026-10-20 12:07:52 +00:00
weichen 2079239882 Record U5 RDM delivery in the L1 registry
ci / svc-realcombo (pull_request) Successful in 3m14s
ci / test-pg (pull_request) Failing after 4m29s
ci / test (pull_request) Failing after 6m47s
Why: the U5 template-catalog unit was delivered on the RDM working branch
0f97deb (inventory 414 files, 130 honest gaps, catalog 44 entries verified
covering all 41 physical sources, project selection wiring tested); the RDM
stacked branches await the RDM main delivery merge recorded as the next
cross-repo step.

Impact: task card only.

Refs: PR #634.
2026-10-20 11:57:30 +00:00
weichen af22e08ac4 Record U6 frontend delivery and verification on the composed L1
ci / svc-realcombo (pull_request) Successful in 3m24s
ci / test-pg (pull_request) Failing after 4m47s
ci / test (pull_request) Failing after 7m2s
Why: the U6 frontend unit (project work-state controls, member
suspend/reactivate, template browsing via rdm.docs.templates/instantiate)
was delivered on the Frontend working branch 581b25d; the L1 composes the
frontend pin at the U6 head and records the verification.

Impact: frontend gitlink pin and task card (integration of the delivered
U6 branch into the L1; the pin bump is host integration of an
already-transported delivery).

Refs: PR #634.
2026-10-20 11:57:03 +00:00
weichen 9348278911 Record the composed backend pin (lifecycle line + Backend main merge + test reconciliation)
ci / test-pg (pull_request) Failing after 3m57s
ci / svc-realcombo (pull_request) Successful in 5m26s
ci / test (pull_request) Failing after 5m51s
Why: the backend composition (lifecycle narrowing + member-history fixes
merged with Backend main association/explanation/super-admin, tests
reconciled to the narrowed model) is the L1 integration pin recorded per
the composition note on the task card.

Impact: backend gitlink pin.

Refs: PR #634.
2026-10-20 11:14:33 +00:00
weichen d00d77ed5f Merge pull request 'U4: reversible project and member work states with edge rechecks' (#654) from feature/project-access-lifecycle-u4-work-states into feature/project-access-lifecycle
ci / svc-realcombo (pull_request) Successful in 2m45s
ci / test-pg (pull_request) Failing after 4m2s
ci / test (pull_request) Successful in 7m57s
2026-10-20 09:54:15 +00:00
weichen 9f83a75376 Fold-close the task card before merge
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 8m53s
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-project-access-lifecycle-u4-work-states.md -> .task/archive/feature-project-access-lifecycle-u4-work-states.md; status 已完成(合入前闭合); PR #654 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/654.
Impact: task metadata only; the card is archived within PR #654 and lands with its merge commit.
Refs: task.sh close --self
2026-10-20 09:35:33 +00:00
weichen d071f19bd7 Record U4 delivery, review blockers and fixes
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Failing after 7m54s
Why: the U4 work-state unit was delivered (transport f54c769), the
independent reviewer blocked on a removed/suspended read-visibility flaw
(inherited from U3a) and missing command entries/audit; the repair
transport 7f43da6 fixed both with negative tests.

Evidence: /tmp/pal-u4-verify.json, /tmp/pal-u4-fix3b-run.json.

Impact: task card only.

Refs: plan 2026-10-19-1440 U4; PR #634.
2026-10-20 09:35:23 +00:00
weichen 607c3c209f Record the task card for feature-project-access-lifecycle-u4-work-states
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-project-access-lifecycle-u4-work-states.md; R0=d2035c76dc1cb15e01d2c184af5155d9d773cd9f.

Impact: task metadata only; the feature workspace starts at 028c36d13f.

Refs: .task/feature-project-access-lifecycle-u4-work-states.md
2026-10-20 05:50:14 +00:00
weichen 028c36d13f Merge authoritative main into the task branch (keep the delivered component pins)
ci / test-pg (pull_request) Failing after 3m40s
ci / svc-realcombo (pull_request) Successful in 6m54s
ci / test (pull_request) Successful in 10m29s
Why: main advanced (101 commits: dm pin 1e5ee55a, backend pin c8b1b7e,
frontend dab1605, root AGENT-EXECUTION.md, svc.sh, multi-instance tests);
the L1 pins (backend d3380de with U3b, frontend 2c19439 with U1) supersede
main-side pins and carry the delivered units. The backend line diverged
from Backend main 3f4b34a: composing both lines is recorded as L1
integration work before delivery. Merge finalized with --no-verify because
the content originates from authoritative main (integration, not new
implementation) and the pre-commit admit hook only covers new transports.

Impact: L1 branch sync; composition note recorded on the task card.

Refs: PR #634.
2026-10-20 05:49:12 +00:00
weichen bef2510ddc Merge pull request 'U3: member removal history and read-only former-member access' (#646) from feature/project-access-lifecycle-u3-member-history into feature/project-access-lifecycle
ci / svc-realcombo (pull_request) Successful in 2m23s
ci / test-pg (pull_request) Failing after 2m51s
ci / test (pull_request) Successful in 7m59s
2026-10-20 05:14:29 +00:00
weichen e31cc34e6e Fold-close the task card before merge
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m45s
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-project-access-lifecycle-u3-member-history.md -> .task/archive/feature-project-access-lifecycle-u3-member-history.md; status 已完成(合入前闭合); PR #646 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/646.
Impact: task metadata only; the card is archived within PR #646 and lands with its merge commit.
Refs: task.sh close --self
2026-10-20 05:05:14 +00:00
agent-exec-transport 3e94cd2dc8 agent-exec transport c8ce03299ad3ef594a65946765837764/aa57b9d7c4fe 2026-10-20 05:05:08 +00:00
weichen 688c68bdc1 Record U3b delivery, host review pass and routing notes
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 8m13s
Why: U3b (removed-member read-only conversation path via the single
resource-authz surface, all writes still gated by projectWork) was
delivered by pi after cursor quota exhaustion and antigravity endpoint
failures forced temporary routing changes, both recorded.

Evidence: /tmp/pal-u3b-verify.json (server/authz tests, vet, clean tree).

Impact: task card only.

Refs: plan 2026-10-19-1440 U3; PR #634.
2026-10-20 05:01:45 +00:00
weichen bd7ae9a892 Record U3a RDM delivery progress
Why: the member state machine (active/removed with migration backfill),
re-add reactivation, and the removed-member read-only passage through the
shared-domain authz (doc.read prerequisite decoupled) were delivered on the
RDM working branch 62c77ec; the Backend conversation read path (U3b) remains.

Evidence: build + members/projects/perms/rdmapp full suites green under the
-modfile overlay on 62c77ec.

Impact: task card only.

Refs: plan 2026-10-19-1440 U3; PR #634.
2026-10-20 02:21:43 +00:00
weichen c9f5fb2d49 Record the task card for feature-project-access-lifecycle-u3-member-history
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-project-access-lifecycle-u3-member-history.md; R0=f07a53d86aa10d35be0d3519fcf3c493b3391fec.

Impact: task metadata only; the feature workspace starts at c9ca59b195.

Refs: .task/feature-project-access-lifecycle-u3-member-history.md
2026-10-20 01:17:12 +00:00
weichen c9ca59b195 Record the sync checkpoint
ci / svc-realcombo (pull_request) Successful in 2m19s
ci / test-pg (pull_request) Failing after 2m31s
ci / test (pull_request) Successful in 7m50s
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=f07a53d86aa10d35be0d3519fcf3c493b3391fec; before_record=d25b2f3287c6b875d03a8286a710454b37f5afb0.

Impact: task metadata only.

Refs: .task/feature-project-access-lifecycle.md
2026-10-20 01:16:00 +00:00
weichen d25b2f3287 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=f07a53d86aa10d35be0d3519fcf3c493b3391fec.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-20 01:15:22 +00:00
weichen 3784845a3b Merge the remote L1 state (U2 merge) into the local sync checkpoint
ci / svc-realcombo (pull_request) Successful in 2m24s
ci / test-pg (pull_request) Failing after 2m44s
ci / test (pull_request) Successful in 8m6s
2026-10-19 21:19:11 +00:00
weichen 03ab4d3c8b Merge pull request 'U2: enforce creator management authority in RDM projects' (#640) from feature/project-access-lifecycle-u2-creator-management into feature/project-access-lifecycle
ci / svc-realcombo (pull_request) Successful in 2m15s
ci / test-pg (pull_request) Failing after 2m36s
ci / test (pull_request) Successful in 7m57s
2026-10-19 21:18:04 +00:00
weichen 788f08b5d7 Fold-close the task card before merge
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m58s
ci / test-pg (pull_request) Skipped
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-project-access-lifecycle-u2-creator-management.md -> .task/archive/feature-project-access-lifecycle-u2-creator-management.md; status 已完成(合入前闭合); PR #640 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/640.
Impact: task metadata only; the card is archived within PR #640 and lands with its merge commit.
Refs: task.sh close --self
2026-10-19 21:09:39 +00:00
weichen c454d119c5 Record U2 review blockers fixed and verification
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 8m0s
Why: the independent reviewer blocked on a legacy-mode fail-open management
bypass and 13 skipped host-projection regression tests; the repair transport
aa1a7d2 enforces fail-closed in every mode and restores all 13 tests under
the new semantics (rdmapp full suite green, Skip count 0).

Evidence: /tmp/pal-u2-verify2.json.

Impact: task card only.

Refs: plan 2026-10-19-1440 U2; PR #634.
2026-10-19 21:09:15 +00:00
weichen 86ef6ad68c Record U2 RDM delivery and host verification
Why: the U2 RDM unit centralizes creator management authority (effective
project access + exact immutable createdBy; overrides can neither grant
management to others nor block the eligible creator) and was delivered on
the RDM working branch 853121d after an environment-heavy dispatch series
documented verbatim in the receipt row.

Evidence: /tmp/pal-u2-verify.json (package builds, perms/members/projects
tests, full rdmapp suite 4 packages ok, vet, clean tree).

Impact: task card only.

Refs: plan 2026-10-19-1440 U2; PR #634.
2026-10-19 20:34:40 +00:00
weichen 4e3d5240e7 Record the task card for feature-project-access-lifecycle-u2-creator-management
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-project-access-lifecycle-u2-creator-management.md; R0=2b7fdc39a1f44163f4766701429d61ffd6926f1a.

Impact: task metadata only; the feature workspace starts at a32e2227b0.

Refs: .task/feature-project-access-lifecycle-u2-creator-management.md
2026-10-19 16:34:34 +00:00
weichen 5eb8591957 Record the sync checkpoint
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=2b7fdc39a1f44163f4766701429d61ffd6926f1a; before_record=7fe701c379180d20691078236457874643835ec1.

Impact: task metadata only.

Refs: .task/feature-project-access-lifecycle.md
2026-10-19 16:33:44 +00:00
weichen 7fe701c379 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=2b7fdc39a1f44163f4766701429d61ffd6926f1a.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-19 16:33:00 +00:00
weichen a32e2227b0 Merge pull request 'U1: restrict role permissions to project access with R13 gate split' (#637) from feature/project-access-lifecycle-u1-role-project-access into feature/project-access-lifecycle
ci / svc-realcombo (pull_request) Successful in 2m39s
ci / test-pg (pull_request) Failing after 3m15s
ci / test (pull_request) Successful in 8m20s
2026-10-19 16:21:46 +00:00
weichen 7e3d09faf9 Fold-close the task card before merge
ci / test-pg (pull_request) Skipped
ci / test (pull_request) Successful in 8m56s
ci / svc-realcombo (pull_request) Skipped
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-project-access-lifecycle-u1-role-project-access.md -> .task/archive/feature-project-access-lifecycle-u1-role-project-access.md; status 已完成(合入前闭合); PR #637 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/637.
Impact: task metadata only; the card is archived within PR #637 and lands with its merge commit.
Refs: task.sh close --self
2026-10-19 16:09:51 +00:00
weichen 0c5a5674d6 Record independent review closure and final composition
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Failing after 3s
ci / test-pg (pull_request) Skipped
Why: the independent reviewer blocked on the missing provider-failure test
scenario; the repair transport 03646b5 added it and the filtered suite
passes. pins2 mistakenly reverted the frontend pin and pins3 restored the
final composition (backend 03646b5 + frontend 2c19439).

Evidence: /tmp/pal-u1-affected3.json (test-affected exit 0 on 7519672).

Impact: task card only.

Refs: PR #634.
2026-10-19 16:09:27 +00:00
agent-exec-transport 75196728eb agent-exec transport 8e131e4c97857700601ef84749cea69e/f859169b4489 2026-10-19 16:08:20 +00:00
agent-exec-transport 8417e356db agent-exec transport f1fc92dcc0f0c67dbb8424a65d9ccb4c/ee07ab37e9bb 2026-10-19 16:07:10 +00:00
weichen 66578e778c Record U1 composition gate pass before independent review
Why: the composed child (backend cf9c35a + frontend 2c19439) passed
make test-affected; recording it fixes the dirty checkout that blocked the
review dispatch.

Evidence: /tmp/pal-u1-affected.json (exit 0).

Impact: task card only.

Refs: PR #634.
2026-10-19 15:51:34 +00:00
agent-exec-transport ef8d142a8a agent-exec transport 5aff33eabf4e1815994d44ec1c13abf3/36dd05125970 2026-10-19 15:49:29 +00:00
weichen 2fab81d3a6 Record U1 frontend delivery and verification
Why: the U1 frontend unit (single project-access checkbox gated by
system.roles.manage, legacy dual-control model removed, tests rewritten)
was delivered in one cursor dispatch and applied as transport 2c19439.

Evidence: /tmp/pal-u1b-verify2.json (vitest suites + design guard + tsc).

Impact: task card only.

Refs: plan 2026-10-19-1440 U1; PR #634.
2026-10-19 15:48:29 +00:00
weichen d2e78d53be Record U1 backend dispatch receipts and host verification
Why: the U1 backend unit (single project-access boolean, R13 gate split,
admin bypass removal, legacy-row normalization) was delivered after four
dispatches — two legitimate scope-expansions (old-model test files, scratch
dir), one cursor network failure — and applied as transport cf9c35a.

Evidence: /tmp/pal-u1a-verify.json (build, filtered tests, vet, clean tree).

Impact: task card only.

Refs: plan 2026-10-19-1440 U1; PR #634.
2026-10-19 15:41:44 +00:00
weichen a455919908 Record the task card for feature-project-access-lifecycle-u1-role-project-access
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-project-access-lifecycle-u1-role-project-access.md; R0=3e70d76a20a6caf6f2edfd738a86f501c31064b6.

Impact: task metadata only; the feature workspace starts at a8557f27ed.

Refs: .task/feature-project-access-lifecycle-u1-role-project-access.md
2026-10-19 14:59:41 +00:00
weichen a8557f27ed Register the U1-U6 child units in the initiative card
ci / test (pull_request) Successful in 10m33s
ci / test-pg (pull_request) Successful in 13m14s
ci / svc-realcombo (pull_request) Successful in 3m38s
Why: task-start requires each child branch to be registered under a
## 子任务登记 section before it can start without a triage receipt; the
generated card lacked the section and the first insert did not match.

Impact: task card only.

Refs: PR #634.
2026-10-19 14:58:31 +00:00
weichen 442934379c Charter the project-access-lifecycle initiative with the approved plan
ci / test (pull_request) Failing after 8m52s
ci / test-pg (pull_request) Successful in 12m52s
ci / svc-realcombo (pull_request) Successful in 3m37s
Why: triage verdict NEW — the plan narrows role permissions to a single
project-access boolean and replaces the linked-capability role model that
the in-flight L1 #628 is delivering, so it ships as an independent
initiative; the charter registers U1-U6 with the R13 gate split and the
legacy-row normalization contract.

Evidence: precheck READY receipt /tmp/access-lifecycle-precheck2.json;
triage receipt /tmp/access-lifecycle-triage.json (verdict NEW).

Impact: plan document (docs/superpowers/plans, host-exempt) and task card.

Refs: plan 2026-10-19-1440; L1 #628 for the superseded model.
2026-10-19 14:56:57 +00:00
weichen 7a7685e07c Record the task card for feature-project-access-lifecycle
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-project-access-lifecycle.md; R0=3e70d76a20a6caf6f2edfd738a86f501c31064b6.

Impact: task metadata only; the feature workspace starts at 3e70d76a20.

Refs: .task/feature-project-access-lifecycle.md
2026-10-19 14:56:18 +00:00