Skip to content

chore: promote expbkmain to bkmain (Mattermost link badge + agent view fixes) - #147

Merged
tusharbhardwaj-bk merged 7 commits into
bkmainfrom
expbkmain
Aug 31, 2026
Merged

chore: promote expbkmain to bkmain (Mattermost link badge + agent view fixes)#147
tusharbhardwaj-bk merged 7 commits into
bkmainfrom
expbkmain

Conversation

@tusharbhardwaj-bk

@tusharbhardwaj-bk tusharbhardwaj-bk commented Aug 31, 2026

Copy link
Copy Markdown

Promotes expbkmain (fe0622e17) to bkmain. Everything here has been running on expbkt3.

What ships

Two independent pieces of work:

1. Mattermost link badge (#146)
Sessions bound to a Mattermost conversation now show the Mattermost mark in the experimental sidebar's bottom-right lane, beside the priority badge, owner avatar and provider icon. Adds mattermostThreadUrl to thread metadata, mirroring the existing linearIssueUrl tag end to end (contract, decider, both projectors, projection column via migration 1023, client reducer), gated on a new threadMattermostLink capability.

The bridge side is already merged and deployed (t3-linear-bridge#55, live on bkt3automations.dev.beknown.live at ff82942), so the badge lights up automatically on new Mattermost binds once this lands.

2. Agent view fixes (#145 and precursors)
fix(web): disable untruthful agent views, fix(web): isolate same-origin agent view lifecycles, and a test drain fix. Not my work — carried along by the promotion.

Migration note

Migration 1023 adds a nullable mattermost_thread_url column to projection_threads. It ran cleanly against expbkt3's live database (243 MB, real data) with no backfill and no rewrite — it is a single additive ALTER TABLE ... ADD COLUMN.

Verification

  • All 15 checks green on feat(web): mark sessions linked to a Mattermost chat #146; verified on expbkt3 end to end: deployed-sha matched the merge commit, service active, migration row present in the live DB, badge code present in the served bundle.
  • Bridge deploy verified independently: binary contains the new symbols, service healthy on production's port.

Deploy impact

Merging this restarts t3-bkmain.service and ends every in-flight session on bkt3. Requested explicitly.

Model: Claude Opus 5 (1M context), harness: T3 Code.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Serialize URL frames by normalized origin, remount through an empty committed state, and use Chromium credentialless storage without weakening the self-origin sandbox. Make every T3 HTML shell unframeable so redirected embeds cannot escape the sandbox.

Cover exact fragment preservation, same-origin A-to-B-to-A DOM replacement, expanded handoffs, hosted and desktop framing headers, and browser fallback behavior.

Written by GPT-5.6-Sol in T3 Code.
Keep the fake browser globals installed until React's development scheduler drains its queued Immediate. This prevents CI teardown from surfacing window-is-undefined errors after every assertion already passed.

Written by GPT-5.6-Sol in T3 Code.
fix(web): isolate same-origin agent view lifecycles
fix(web): disable untruthful agent views
The Linear/Mattermost bridge binds a session to a Mattermost thread so a
human can steer it from chat, but that binding lived only in the bridge's
own database. Inside T3 the sidebar looked identical whether or not
replies in chat were landing in the session.

Adds `mattermostThreadUrl` to thread metadata, mirroring the existing
`linearIssueUrl` tag end to end (contract, decider, both projectors,
projection column via migration 1023, client reducer), and renders the
Mattermost mark in the experimental sidebar's bottom-right lane beside
the priority badge, owner avatar and provider icon.

The badge is a labelled span rather than a link: it sits inside the row's
button, where an anchor would be invalid HTML and would swallow row
selection. Opening, changing and clearing the link live on the row's
context menu, gated on the new `threadMattermostLink` capability so an
older server shows none of it.

The bridge writes the field through the `thread.meta.update` command it
already speaks; no new T3 endpoint.

Model: Claude Opus 5 (1M context), harness: T3 Code.
feat(web): mark sessions linked to a Mattermost chat
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Aug 31, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 15.1 KiB
Codex Thread snapshot wire 7.2 KiB 7.3 KiB
Codex Live turn WebSocket wire 6.4 KiB 7.8 KiB
Codex Live turn WebSocket decoded 55.7 KiB 66.4 KiB
Codex Live turn messages 11 21
Claude Total thread wire 13.6 KiB 15.1 KiB
Claude Thread snapshot wire 7.2 KiB 7.3 KiB
Claude Live turn WebSocket wire 6.4 KiB 7.8 KiB
Claude Live turn WebSocket decoded 56.5 KiB 66.4 KiB
Claude Live turn messages 11 21

Baseline: unavailable · PR result: fe0622e · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 110.4 KiB
  • Claude decoded thread snapshot: 111.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@tusharbhardwaj-bk
tusharbhardwaj-bk merged commit 0436d9d into bkmain Aug 31, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 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.

1 participant