Skip to content

feat(plugins): show attributed statuses on threads - #33810

Draft
saphid wants to merge 5 commits into
pingdotgg:mainfrom
saphid:feat/plugin-thread-status-20261110
Draft

saphid wants to merge 5 commits into
pingdotgg:mainfrom
saphid:feat/plugin-thread-status-20261110

Conversation

@saphid

@saphid saphid commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Stacked follow-up to #33606; draft until the platform lands. The upstream Files changed view includes the platform prerequisite, which is not on upstream main yet.

Server plugins can expose tools and panels, but cannot show a short status on a thread. This recovers that use case from #16061 on the active plugin platform.

Server API version 2 adds keyed threads.setStatus and threads.clearStatus. Statuses are attributed to their plugin and delivered to web/desktop and native mobile through an environment read subscription. They are bounded, validate the target thread, and clear before deactivation cleanup; an old activation cannot restore them. Pi extension statuses retain their existing behavior.

This PR’s own addition is one unchanged commit. Review only this addition. The prerequisite includes the author’s latest platform head, replayed onto main 996b43f01b. The upstream artwork/composer fixes are preserved, including revealing the folded composer when terminal context is inserted. The shared conflict resolution retains main’s diff-selection and older-settled regression tests alongside the platform region tests. The SDK lockfile keeps main’s existing Playwright peer snapshot.

Current CI: the previous published head passed CI. Fresh CI is required after this main refresh.

On the refreshed head, CI=true vp run check:changed 19f1ed228c4… passed 144 tests across 11 files, 38 package typechecks, nine React compiler checks, format, lint, knip and GraphQL. The focused lifecycle service tests also passed 3/3.

Independent Claude Opus 5.5 integration review (high reasoning, Claude Code harness) approved frozen head 5ca4cbf4290 with no actionable findings and independently passed 62 host/auth/status tests. It verified main’s mobile file-link props and web diff-selection changes remain intact. Shared prerequisite integration on sibling events head 3fca3d9cb51 passed the complete required check: 1,080 tests in 81 files, 42 package typechecks and 62 React compiler checks. Its first run had three browser-click timeouts; all 32 tests in those files and the complete rerun passed with one worker, with no assertion or timeout changes. Canonical TMPDIR avoids the previously recorded unchanged-main macOS temp-path fixture mismatch. The status feature patch is identical to its previously approved version.

Draft: real-client proof remains incomplete. Prior clean-base and candidate browser automation timed out after pairing. The fallback could not expose a DevTools endpoint, and the designated iOS simulator failed to boot (launchd failed to respond). No screenshot, recording or successful client observation was produced. Status display, disable/re-enable cleanup, thread isolation and comparable before/after media remain unverified. Android Emulator is unavailable. Passing CI does not make this ready for merge.

Tracked in saphid/personal-ops#128. Left open and unmerged.

Reviewed with sol-loop: the feature received GPT-6.1 Sol review on high reasoning, approved with no actionable findings.

Created with GPT-6.1 Sol in the Codex harness, with initial contract/RPC plumbing by Claude Opus 5.5 in the Claude Code harness. Client proof attempted by GPT-6 Astra in Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Nov 10, 2026
@saphid
saphid force-pushed the feat/plugin-thread-status-20261110 branch 3 times, most recently from 2fc5b13 to 1a77beb Compare November 11, 2026 03:43
ashx-j and others added 5 commits November 11, 2026 20:30
…ithout a fork

A plugin is a folder with a t3-plugin.json that a user drops onto Settings → Plugins. It installs
turned off on one environment, and can ship themes and styles, a server half (RPC methods and
channels, storage, settings with secrets in the secret store, and MCP tools for agents) and a web
half that loads with T3's own React and UI kit (right panels, commands, a settings panel, assets,
and redrawing the composer's control row, the sidebar and the Settings frame). @t3tools/plugin-sdk
types both halves and builds a web half.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@saphid
saphid force-pushed the feat/plugin-thread-status-20261110 branch from 1a77beb to 5ca4cbf Compare November 11, 2026 10:02

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants