Skip to content

feat(collective): show responsibilities before leaving - #94

Merged
zts212653 merged 3 commits into
mainfrom
feat/f290-leave-readiness
Oct 20, 2026
Merged

zts212653 merged 3 commits into
mainfrom
feat/f290-leave-readiness

Conversation

@zts212653

Copy link
Copy Markdown
Owner

Outcome

  • Add an authenticated read-only GET /api/memberships/self-leave/readiness projection that returns all current steward, Work, Roadmap, and custody blockers in one response.
  • Reuse the same authoritative projection inside the existing leave transaction, so a responsibility created after the read still returns the established 409 and cannot be raced.
  • Return exact source coordinates for readable Work, Project, and Artifact items; reduce inaccessible custodied Artifacts to an aggregate count without title or ID leakage.
  • Embed the reviewed Core leave dialog from merged cat-cafe main and bind its manifest, build inputs, and source metadata to verifiable SHA-256 provenance.
  • Preserve existing authority: no force-leave, governance transfer, role grant, or custody handoff write is added.

Verification

  • Collective package lifecycle: 5/5 passed.
  • Owner/control surface: 41/41 passed.
  • Transport recovery: 3/3 passed.
  • Business suite: 78 files / 358 tests passed, including four new leave-readiness cases and HTTP auth coverage.
  • pnpm --filter @clowder-ai/collective-connector typecheck — passed.
  • pnpm --filter @clowder-ai/collective-connector build — passed.
  • test:source — 4/4 passed; the new provenance assertion first failed against deliberately stale metadata after asset replacement, then passed after updating exact hashes.
  • test:installed — fresh packed dependency closure and real SDK lifecycle passed; packaged assets verified.
  • Generated app.js, app.css, manifest.json, and build-inputs.json are byte-identical to cat-cafe exact main bdc8d5ff472bdcad55a79e6a6f696963eb8167e7, which contains Core PR #5791 merge 78431d34c62d495e919023cf94ef43501b645158 as its direct parent.
  • Author browser dogfood on the isolated real Service + same Core bundle passed blocked desktop/mobile, read failure + retry, exact returns, privacy count, dark tokens, and a real concurrent Project POST causing leave 409 + inventory refresh.
  • git diff --check passed; no root media/design artifacts.

Five-axis risk

  • Behavior: medium-high — new read surface plus a shared projection now controls both UI readiness and the existing leave guard.
  • Data: the readiness call is snapshot-only and persists nothing; the pre-existing leave transaction remains the sole membership mutation.
  • Security: bearer session, current Human auth binding, exact Collective existence, and active membership are required before projection. Unreadable Artifact metadata is never returned.
  • Contract: strict plugin schema and strict Core decoder are paired; embedded bytes carry exact source/manifest/build-input hashes and fresh installed-consumer validation.
  • Irreversible: no new irreversible action or authority. A Human still explicitly submits the existing leave operation, which recomputes blockers inside the transaction.

Ownership / activation boundary

Architecture cell remains collective-runtime; Architecture Map delta is none. Under F202, Service/business contracts and the embedded distribution belong here, while editable Client source stays in cat-cafe. This PR lands source and packaged bytes only; it does not authorize Plugin Manager activation, Service restart, or formal runtime changes.

Accepted scope: Task038 messages thread_mtr820c45n7l2b2s#0001792487226056-001134-deddf11d and thread_mtr820c45n7l2b2s#0001792488334105-001215-d9a17fbc.

Why: Members need an authenticated, privacy-preserving list of unfinished Work, Project, and Artifact custody before the existing transactional leave guard can succeed. The same projection now drives the read path and the final transaction recheck.\n\n[小太阳·砚砚/GPT-5.6 Sol🐾]\nThread-Context: threadId=thread_mtr820c45n7l2b2s catId=codex-sol
Why: The readiness view must carry the authoritative Work status, exact Project source, and current Artifact revision so the Client can explain blockers and return to their real location without guessing from stale projections.\n\n[小太阳·砚砚/GPT-5.6 Sol🐾]\nThread-Context: threadId=thread_mtr820c45n7l2b2s catId=codex-sol
Why: Ship the reviewed Core leave flow from an exact main source inside the plugin and make its generated-byte provenance mechanically verifiable.
@zts212653

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T10:39:28.981659Z 5a2fb6e Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

Reviewed commit: 5a2fb6e1de

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@zts212653
zts212653 merged commit 82c5c13 into main Oct 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant