Skip to content

feat(companion): complete compact desktop controls - #75

Merged
zts212653 merged 3 commits into
mainfrom
feat/f317-b-companion-118
Oct 9, 2026
Merged

zts212653 merged 3 commits into
mainfrom
feat/f317-b-companion-118

Conversation

@zts212653

@zts212653 zts212653 commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add the persisted 43px compact size and keep badge geometry and hit testing truthful
  • keep chat, assistant-only folded unread, mute, share, hangup, and hide semantics available throughout one call
  • add Host-bound current-project work and delivery projection with opaque navigation refs
  • prepare contract beta.25, SDK beta.21, and companion alpha.21 with a reproducible catalog identity

Why

Desktop 1.18 needs a smaller living companion without shrinking its controls, and the card must show real bounded work without letting renderer input choose projects or routes.

Risk and gate choice

  • Behavior: high; compact geometry and one-call panel behavior change.
  • Data: medium; the existing persisted size preference gains a new valid value, while work rows remain bounded read projections.
  • Security: medium; renderer authority must remain zero-selector and navigation uses only Host-issued opaque refs.
  • Contract: high; new public prerelease schema, SDK, and companion versions must agree.
  • Irreversible: medium; npm prerelease versions are immutable after the main publish workflow, but next can move to a later corrective prerelease and latest is unchanged.

A stateful non-author local reviewer was selected for the cross-package contract and interaction semantics. Targeted package, browser, generated-artifact, catalog, and fresh-consumer checks cover the changed public surface.

Verification

  • pnpm --filter @clowder-ai/companion test (166/166)
  • pnpm --filter @clowder-ai/companion test:browser (8/8)
  • pnpm --filter @clowder-ai/plugin-sdk test (312/312)
  • changed contract validation and conformance tests (43/43)
  • pnpm -r typecheck
  • pnpm --filter @clowder-ai/plugin-contract generate:check
  • pnpm catalog:check
  • pnpm test:fresh-consumer
  • git diff --check

The full plugin-contract suite still has the same two stdio timing failures reproduced on unchanged main under the pinned Node 24.18 toolchain; all changed contract tests and SDK consumers pass. Final candidate companion alpha.21 identity: SHA1 69628a4799afb395a301e029eb72f4b7ec3caa49; SRI sha512-YMfQcRHdn/F99FbfGDgbQlIHURA/RJvyh/4mNSVlK/dAa2Egx30WVD2YuWuClNH7mVypnK22q7LWoFKm48f4lA==.

Why: Desktop 1.18 needs truthful compact geometry, persistent in-call chat controls, and Host-bound current-project work without giving the renderer routing authority.\n\n[小太阳·砚砚/gpt-5.6-sol🐾]
@zts212653
zts212653 requested a review from mindfn as a code owner October 9, 2026 01:54
Why: Folded-chat unread must not count the owner's own speech or typing, and the public work/navigation projection should preserve partial and settlement truth before beta.25 is published.

[小太阳·砚砚/gpt-5.6-sol🐾]
@zts212653

Copy link
Copy Markdown
Owner Author

Review fix @ 375c653

  • Folded-chat unread now increments only for new assistant rows; owner voice/typing remain read.
  • Partial/unavailable zero-row work keeps an honest notice.
  • Navigation settlement semantics and work source/version invariants are now explicit and tested.
  • Final alpha.21 identity: sha512-YMfQcRHdn/F99FbfGDgbQlIHURA/RJvyh/4mNSVlK/dAa2Egx30WVD2YuWuClNH7mVypnK22q7LWoFKm48f4lA== / 69628a4799afb395a301e029eb72f4b7ec3caa49.

Fresh verification: companion 166/166, browser 8/8, SDK 312/312, changed contract 43/43, typecheck, catalog, and fresh consumer all pass.

Why: ensure the out-of-call fold boundary and each unavailable source rule fail if their production guards regress before the public prereleases are published.
@zts212653

Copy link
Copy Markdown
Owner Author

Merge-gate evidence — exact candidate 15bd2c0

  • localPeerReviewSha: 15bd2c0 (Sonnet approved; typed fact source thread_muj2oyola5htyhrm#0001791514174681-000324-241baef8). The prior full production verdict at 375c653 remains continuous; final delta is 17 test-only lines and was independently mutation-checked.
  • cloudReviewSha: none; not selected because the principal risks were stateful Host authority, cross-version contract semantics, and actual renderer behavior, covered by one stateful local reviewer.
  • accepted source: thread_mu2fdr0521qiinkm#0001791459812814-000767-838e74e5; immutable revision unchanged.
  • headChangeCause: local-gate; nextGateOwner: author; stale: false. Base 8ee84f6 is unchanged.
  • gate_passed: true. Companion 166/166; Chromium 8/8; SDK 312/312; changed contract 43/43; final test delta focused 37/37 and 3/3 with three independent mutation REDs; typecheck, generate, catalog, fresh-consumer, and diff checks passed. Both exact-HEAD GitHub Typecheck + Conformance checks passed.
  • package bytes rebuilt after the test-only commit with Node 24.18.0 / npm 11.16.0 and unchanged:
    • contract beta.25: 188734 bytes, SHA1 d08a0bcd2151745454b5cd48e6a5151b3d8a1178, SHA256 3ca40ce3685f06a9d873d4c67c079d6cd93e3141196711a7b5cd98b73bb3c8bc
    • SDK beta.21: 46187 bytes, SHA1 e2ffc45456679ad752fc1744f56ed1ce1908a4ac, SHA256 21b747ae46eaae0e945801cca27fbb7d88be9ec9328d990398a3e947988bd4b9
    • companion alpha.21: 12513915 bytes, SHA1 69628a4799afb395a301e029eb72f4b7ec3caa49, SHA256 13699a73a91e449a5b03e5e9e770b800d61471d21909249e135f32dfa4faafde
  • hotfix governance: the pre-merge fix commit has exact non-author review; no temporary workaround remains, so the two-week reminder is not applicable. Root artifacts: none.

Evidence validation E1-E5: passed. This public package PR does not itself advance or close F317; Host beta.25 admission and integrated Alpha remain downstream.

@zts212653
zts212653 merged commit 7fe1a7c into main Oct 9, 2026
3 checks passed
@zts212653
zts212653 deleted the feat/f317-b-companion-118 branch October 9, 2026 02:54
@zts212653

Copy link
Copy Markdown
Owner Author

Release truth — main merge 7fe1a7c

Main workflows succeeded:

  • Contract CI 37876777042: validation + npm publish success
  • Personal Chrome Companion CI 37876776946: success

Registry verification downloaded each published tarball and compared it byte-for-byte with the frozen Node 24.18.0 / npm 11.16.0 candidate; all three cmp results were equal.

  • @clowder-ai/plugin-contract@0.1.0-beta.25: 188734 bytes, 237 files, SHA1 d08a0bcd2151745454b5cd48e6a5151b3d8a1178, SHA256 3ca40ce3685f06a9d873d4c67c079d6cd93e3141196711a7b5cd98b73bb3c8bc, SRI sha512-LWdCIjpSkJaVoqzBLgDvfeq+ZNuiwB+CiTlv45layRYsAK7M3YWRK4SR7yGfDOZRewOTMRRaOSvr/g46/kyeoQ==
  • @clowder-ai/plugin-sdk@0.1.0-beta.21: 46187 bytes, 37 files, SHA1 e2ffc45456679ad752fc1744f56ed1ce1908a4ac, SHA256 21b747ae46eaae0e945801cca27fbb7d88be9ec9328d990398a3e947988bd4b9, SRI sha512-YXu/eiysoHu+5Nn9UwWnnEgaf2tHl/dGkkeeJJGxDDaYOi06WcRNq+bG6OG3KsK4pj+ZaNnkbQcYfDRYyuINDQ==
  • @clowder-ai/companion@0.1.0-alpha.21: 12513915 bytes, 65 files, SHA1 69628a4799afb395a301e029eb72f4b7ec3caa49, SHA256 13699a73a91e449a5b03e5e9e770b800d61471d21909249e135f32dfa4faafde, SRI sha512-YMfQcRHdn/F99FbfGDgbQlIHURA/RJvyh/4mNSVlK/dAa2Egx30WVD2YuWuClNH7mVypnK22q7LWoFKm48f4lA==

Dist-tags:

  • contract next=beta.25, latest remains beta.1
  • SDK next=beta.21, latest remains beta.5
  • companion next=alpha.21, latest remains alpha.1

This proves publication identity only. Host beta.25 admission and integrated F317 Alpha remain downstream and are not claimed complete here.

mindfn added a commit to mindfn/clowder-ai-plugins that referenced this pull request Oct 12, 2026
Why: Port merged main zts212653#75 Companion work/navigation semantics without erasing C1 command and permission invariants. Changed shared bytes require contract beta.30, SDK beta.15 and seven connector alpha.5 identities; retain previous immutable artifacts.

[砚砚/gpt-6.1-sol🐾]
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