Squash the current repository state back into one baseline commit while preserving the README reframing and repository contents. Constraint: User explicitly requested a single squashed commit with subject "asdf" Confidence: high Scope-risk: broad Reversibility: clean Directive: This commit intentionally rewrites published history; coordinate before future force-pushes Tested: git status clean; local history rewritten to one commit; force-pushed main to origin and instructkr Not-tested: Fresh clone verification after push
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { updateSessionBridgeId } from '../utils/concurrentSessions.js'
|
|
import type { ReplBridgeHandle } from './replBridge.js'
|
|
import { toCompatSessionId } from './sessionIdCompat.js'
|
|
|
|
/**
|
|
* Global pointer to the active REPL bridge handle, so callers outside
|
|
* useReplBridge's React tree (tools, slash commands) can invoke handle methods
|
|
* like subscribePR. Same one-bridge-per-process justification as bridgeDebug.ts
|
|
* — the handle's closure captures the sessionId and getAccessToken that created
|
|
* the session, and re-deriving those independently (BriefTool/upload.ts pattern)
|
|
* risks staging/prod token divergence.
|
|
*
|
|
* Set from useReplBridge.tsx when init completes; cleared on teardown.
|
|
*/
|
|
|
|
let handle: ReplBridgeHandle | null = null
|
|
|
|
export function setReplBridgeHandle(h: ReplBridgeHandle | null): void {
|
|
handle = h
|
|
// Publish (or clear) our bridge session ID in the session record so other
|
|
// local peers can dedup us out of their bridge list — local is preferred.
|
|
void updateSessionBridgeId(getSelfBridgeCompatId() ?? null).catch(() => {})
|
|
}
|
|
|
|
export function getReplBridgeHandle(): ReplBridgeHandle | null {
|
|
return handle
|
|
}
|
|
|
|
/**
|
|
* Our own bridge session ID in the session_* compat format the API returns
|
|
* in /v1/sessions responses — or undefined if bridge isn't connected.
|
|
*/
|
|
export function getSelfBridgeCompatId(): string | undefined {
|
|
const h = getReplBridgeHandle()
|
|
return h ? toCompatSessionId(h.bridgeSessionId) : undefined
|
|
}
|