Repository navigation
feat(collective): ordinary attachment custody and durable channel state - #123
Conversation
Why: Channel conversation needs authenticated original files, retry-safe event references and recoverable per-Human drafts without creating Work. Delegate immutable bytes through the original Host content owner, persist exact public bindings atomically, and package the matching Core Client from 193bd7ffef21e1a4b4ba1f6cee7e6331276ec373. The full expression batch remains active; this does not publish a package or certify model image input.
Why: distinguish the tested installed dependency closure from actual Host and OAuth acceptance, and retain cross-repository provenance for 02a75fc while the complete expression batch remains active. Thread-Context: threadId=thread_mvngqzz1iixttng1 invocationId=f4e35fad-b971-45b8-8753-b548f9dee984 catId=codex61-sol
Why: ordinary attachments already use the Collective-local optional owner contract. Remove the unused duplicate SDK declaration/export so this batch does not change bytes under a published SDK version or break other plugins pinned to that immutable artifact. CI RED: feishu registry installation rejected the changed SDK with EINTEGRITY; the fixed CI toolchain will verify the same check after this scope reduction. Thread-Context: threadId=thread_mvngqzz1iixttng1 invocationId=f8fd0c91-1ddd-4f44-ba81-92bf08d2ad9e catId=codex61-sol
Why: alpha.8 is already published and immutable. Prepare alpha.9 with a repeatable canonical pack digest while preserving every live catalog release and all dependency locks. Thread-Context: threadId=thread_mvngqzz1iixttng1 invocationId=f8fd0c91-1ddd-4f44-ba81-92bf08d2ad9e catId=codex61-sol
|
Merge evidence for the ordinary attachment and durable Channel-state slice.
This merges the first attachment slice only. Native model image consumption, STT, stickers, quoting, applicable rich content and the complete installation/Alpha journey continue under the original accepted batch; this is not Feature/Task closure or human OAuth acceptance. |
Why: #123 was squashed into ec0ef60. Its complete tree is identical to reviewed 232bda5 (git diff --quiet verified); retain the already-published continuation history without a force push. Conflict resolution leaves the continuation tree unchanged. Thread-Context: threadId=thread_mvngqzz1iixttng1 invocationId=c9c72db0-a87d-41f4-961b-9eef025c3b1c catId=codex61-sol
|
Resolved through a disclosed replacement source, 2026-10-26. The cleanup in #118 is now pushed at The original private Original source request and partial recovery record@zts212653 I am following up on the retained Client delivered by this PR for the permission-model cleanup in #118. The packaged Client still contains the unused Could the original Core/Client delivery owner provide the reviewed source at The recorded private Core commit is unavailable in the currently accessible repositories. The inspected Host checkout differs in 130 recorded inputs, so rebuilding from it would mix in unrelated changes. I have left the bundle and its provenance intact; I am not asking for a new compatibility or permission mechanism. Please post the source handoff status on #118 so its existing tracking subscription can resume this dependency. This is a source/provenance request, not a request to repeat review or publish/install/restart anything. Input recovery updateI have now recovered and verified 728/746 exact input files from existing files and Git blobs, including the original build script and retired schema module. I also checked available worktrees and both local repositories' reachable/ref-log source histories. 18 exact inputs remain unavailable, listed below. A private handoff of these matching files, together with the original package/build-tool lock metadata, is sufficient to finish validating the source snapshot; there is no need to reproduce a new implementation or upload private source here.
The original bundle has not been modified. After all inputs are available, I will first reproduce its existing asset digest before changing the obsolete schema and rebuilding the candidate. Please report handoff status on #118 for the existing tracking subscription. |
What and why
Paired Core PR: https://github.com/zts212653/cat-cafe/pull/6122.
Members can paste two images in the ordinary Channel composer, remove one, send, open authenticated original bytes as another member, and return to the message. Refresh, Service restart and a lost send ACK preserve one canonical message. My Café and Channel consume the same attachment preview and media window; Service-owned per-Human drafts use CAS and exact send consumption, and read cursors advance from visible messages.
This is the first implementation slice of F290 Task042, under the approved full expression batch. The accepted plan explicitly permits separate contract/custody, shared expression and full journey PRs. Voice, stickers, quote/rich content, full model input and final Alpha acceptance remain with this same implementation owner; this PR does not close the batch or Feature.
Original requirements and accepted source
docs/discussions/2026-10-23-f290-cafe-experience-parity.md; human sourcethread_mui5lsvu1whtysh1#0001792762441831-001160-16c41177.docs/plans/2026-10-23-f290-channel-expression-and-projects.md, first batch. Design:c7e69f8c3f + 6900431ce6.thread:thread_mui5lsvu1whtysh1#0001792762441831-001160-16c411770001792762441831-001160-16c41177proposal_mvngj173pet2fnkh, childthread_mvngqzz1iixttng1, original parent Task0001792910257139-000042-abe41fe3; no parent Task duplication/migration.Risk and ownership
Behavior: ordinary file/image send, retry/recovery and read position. Data: additive persisted references/private draft and read records; no TTL. Security: independent Human membership, exact source/channel binding, revoked authority, Range/abort and installation-fenced owner proxy. Contract: shared Human/Agent/event schemas plus matching plugin Service/Client; old text is retained and legacy rich-content readers fail visibly before consuming delivery cursors. Irreversible: no production write, package publication, install upgrade or runtime restart.
Architecture cell:
collective-runtime; update existing map. Original content owner keeps immutable bytes; Service remains canonical for events/private state. No new Work, Thread or content owner. The Service, Connector reader negotiation and optional SDK owner capability are implemented here; the compiled Client is generated from Core193bd7ffef21e1a4b4ba1f6cee7e6331276ec373.assets/client/source.jsonrecords asset digestf99b5d9b35633f18db4fbb72e0e7d7ae5b803a357af2737306f73284bdaae3dd, input and manifest hashes. SDK source adds an optional structural seam; no registry version or external dependency is changed. The Service remains compatible with its existing SDK dependency and requires the updated Host only for ordinary byte custody. An old strict Service reader cannot read newly written state: preserve a pre-upgrade snapshot and repair forward after user writes.Independent source: local Argon implementation/contract review, as selected in the delegation; review pending. No self-approval or automatic second cloud review.
Verification
Evidence in the paired Core commit:
docs/evidence/2026-10-25-f290-expression-first-slice/README.mdwith 1440/390 screenshots and captured command output.git diff --checkpassed. The paired Core tip teaches the normal Channel attachment path.Review focus: source/owner boundary, atomic draft consumption, membership revocation and the browser cache-removal intent. One early click-interception run and one90s browser timeout remain disclosed; later exact normal-click journeys passed, without force-clicking or suppressing assertions. The full batch still needs authorized model image consumption, voice, stickers, applicable rich blocks, all presentation modes and post-merge installed Alpha verification.
GitHub notification plugin is currently import-only; no recovery setting or retained wait is changed. PR/CI truth is read through canonical gh.
小太阳·砚砚 / gpt-6.1-sol
Installed candidate archive SHA256:
805b87a47714c2b4075893dfd34c7d759ff0e0beee547526bca1d75f239cf7df. Its isolated physical dependency closure exercised start/bootstrap/create/disable/re-enable, preserved state and verified packaged assets. It is not a production installation or actual Host/OAuth acceptance.