Skip to content

feat(desktop): compose signed channel panel from job events [issue:#3863] - #4130

Draft
tcballard wants to merge 5 commits into
block:mainfrom
tcballard:tcballard/signed-extension-panel-composition
Draft

feat(desktop): compose signed channel panel from job events [issue:#3863]#4130
tcballard wants to merge 5 commits into
block:mainfrom
tcballard:tcballard/signed-extension-panel-composition

Conversation

@tcballard

@tcballard tcballard commented Aug 1, 2026

Copy link
Copy Markdown

What problem does this solve?

The signed channel panel surface currently has no transport adapter, so a channel with signed Buzz job activity still shows only the empty placeholder. It also did not subscribe to the signed job kinds for live updates, making new activity invisible until a later history refresh.

What this implements

This stacked follow-up composes a bounded, read-only panel projection from the existing signed job lifecycle events (kinds 43001–43006):

  • loading while the current channel timeline resolves;
  • empty when no signed job activity is available;
  • ready with the latest lifecycle status, event count, latest note, timestamp, and source-event provenance;
  • bounded to 64 source events and plain-text note content;
  • explicit status mapping for requested, active, complete, blocked/cancelled, and failed job states;
  • source links routed back through Buzz’s existing timeline/thread navigation; and
  • live channel subscriptions now include all six signed job lifecycle kinds.

The projection is scoped to the current channel’s h tag, accepts canonical channel UUIDs across UUID versions, excludes pending/unsigned or malformed event ids, and preserves each signed source event id and kind.

Existing paths reused

The adapter consumes ChannelScreen’s existing authenticated resolvedMessages timeline events, uses the existing getChannelIdFromTags channel boundary, renders in the existing auxiliary-panel shell, and reuses the existing source-event-to-thread navigation path. No new event kind, HTTP endpoint, or remote UI runtime was added.

This PR is intentionally stacked on #4102 (renderer) and #3882 (contract); the review delta is commits 246bd5a, 1696308, and 0bef596.

Tests and validation

Added focused regression coverage for:

  • latest-event/status selection and source provenance;
  • cancellation/failure mapping;
  • unsigned, pending, malformed, cross-channel, and non-v4-channel filtering;
  • bounded plain-text notes;
  • inclusion of every signed job kind in the live channel filter; and
  • the empty panel plus ready panel with signed source provenance in Playwright.

Commands run:

node --import ./test-loader.mjs --experimental-strip-types --test src/features/channels/ui/composeSignedChannelPanel.test.mjs src/shared/constants/kinds.test.mjs
pnpm typecheck
pnpm check
pnpm build:e2e
pnpm check:file-sizes
pnpm exec playwright test tests/e2e/signed-channel-panel.spec.ts --project=smoke
git diff --check

The focused unit, typecheck, repository checks, E2E build, file-size check, and ready-state Playwright test passed. The empty-state Playwright test passed on retry after a local preview-server startup race; no product assertion failed. The ready-state screenshot is attached in the PR conversation using Buzz’s immutable screenshot branch. No desktop shell layout changed.

Deferred work

Command-palette/autocomplete work remains separate. Canvas revision history, workflow run history, structured handoff cards, and any broader panel transport decision remain separate follow-ups.

No OEXL-specific code, matching, acceptance, payment, accounting, settlement, or marketplace semantics were added.

tcballard and others added 4 commits July 31, 2026 09:57
Defines the generic, bounded, channel-scoped manifest contract for the first block#3863 design slice. Transport kind selection remains deferred for maintainer review.

Signed-off-by: Tom Ballard <tom@armytage.co>
Signed-off-by: Tom Ballard <tom@armytage.co>
tcballard added a commit to tcballard/buzz that referenced this pull request Aug 1, 2026

Copy link
Copy Markdown
Author

Ready-state panel

The signed job activity projection now renders the latest lifecycle status and preserves its signed source provenance. This PR changes the desktop panel surface only; no desktop shell layout changed.

signed-channel-panel-ready

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