2025-11-13 - 2026-11-13
Overview
4 Releases published by 1 user
Published
v0.1.0-dev.71
v0.1.0-dev.71
Published
v0.1.0-dev.68
v0.1.0-dev.68
Published
v0.1.0-dev.64
v0.1.0-dev.64
Published
v0.1.0-dev.50
v0.1.0-dev.50
38 Pull requests merged by 1 user
Merged
#197 docs(superpowers): local-first LLM routing design spec
Merged
#195 docs: scrub Phase-7 + JarvisBusWorld doc drift (#19, #45)
Merged
#196 fix: STT backend constant casing + audioLevel NaN guard (#37, #47)
Merged
#192 docs(handoff): multi-runner shipped + v0.2 wave plan
Merged
#194 ci: build hygiene — webview cleanup + OpenSSF Scorecard (#46, #178)
Merged
#193 docs(superpowers): v0.2 Wave 1 sequencing + execution spec
Merged
#185 fix(agent): bundle assistant text with toolUse + document cache hint dormancy
Merged
#187 ci: create GitHub Release directly in publish-tag job
Merged
#190 docs(superpowers): multi-runner Grogu spec + implementation plan
Merged
#189 ci: age-filter zombie reaper (>=1h) for multi-runner safety
Merged
#183 ci: reap orphan xctest/swift-test on self-hosted runner
Merged
#184 docs: reconcile Ollama model baseline to actual production names
Merged
#181 ci: move swift-packages matrix to self-hosted runner (Grogu)
Merged
#174 docs(handoff): refresh end-of-session — CI green push + governance closures
Merged
#173 ci(actions): restore pnpm + node setup on app-build for Xcode build phase
Merged
#171 fix(voice): widen CI timing budgets for I3 + V4 (round 2)
Merged
#170 fix(ci): surface real xcodebuild errors on App target failure
Merged
#169 fix(harness): move Corpora resource into Sources/Harness — fixes xcodebuild
Merged
#168 fix(ci): Harness SQLite struct conflict + Voice cold-start timing budgets
Merged
#167 fix(ci): pin Xcode 26.x, drop phantom VoiceLog, harden Batcher timing
Merged
#166 ci(actions): make Typecheck step blocking
Merged
#165 fix(hud): clean up TS18048 strict-undefined errors
Merged
#164 ci(actions): apply missed webview reorder + rename artifact + non-block typecheck
Merged
#162 docs(handoff): end of session 2026-05-13 — v0.1 shipped
Merged
#163 ci(actions): remove custom CodeQL workflow — default setup now enabled
Merged
#161 ci(actions): fix typecheck/build order + share webview artifact
Merged
#160 chore(deps): batch Dependabot bumps — fiber + plugin-react + jsdom + vite
Merged
#159 fix(deps): close vite + esbuild CVEs via pnpm.overrides + vitest@3
Merged
#156 feat(app): v0.1 UX surfaces — startup panels + InputMonitoring banner + PTT
Merged
#157 fix(mcp): v0.1 CRIT cluster — turnID resolver wired + tool-result double-cap
Merged
#158 fix(voice): v0.1 CRIT cluster — wake / STT / TTS / boot probes
Merged
#153 fix(memory): v0.1 CRIT cluster — facts_vec / replay correlation / FTS5 sanitize / search_memory preamble
Merged
#152 fix(vision): v0.1 cluster — T2 honesty + pendingFrame leak + TCC revoke observation
Merged
#151 fix(bus,hud): v0.1 S1 cluster — webview didFail + menu-bar icon transition
Merged
#155 chore: PR + dependency triage report — 2026-05-12
Merged
#154 ci(actions): full pipeline — build / test / scan / publish
Merged
#150 fix(hud): chat panel auto-scroll on streaming append — B-06 tactical (#51)
Merged
#149 docs: BUILDING.md + finalize README MIT license section
16 Pull requests proposed by 1 user
Proposed
#191 docs(claude-md): runner inventory updated for 3-runner Grogu setup
Proposed
#198 feat: local-first LLM routing with reactive Opus escalation
Proposed
#199 chore(deps): bump pnpm/action-setup from 4 to 6
Proposed
#200 chore(deps): bump actions/cache from 4 to 5
Proposed
#201 chore(deps): bump actions/checkout from 4 to 6
Proposed
#202 chore(deps): bump github/codeql-action from 3 to 4
Proposed
#203 chore(deps): bump actions/setup-node from 4 to 6
Proposed
#204 chore(deps-dev): bump vitest from 3.2.4 to 4.1.6 in /webview
Proposed
#205 chore(deps-dev): bump @types/node from 20.19.39 to 25.9.1 in /webview
Proposed
#206 chore(deps): bump zustand from 5.0.12 to 5.0.13 in /webview
Proposed
#207 chore(deps-dev): bump vite from 8.0.12 to 8.0.13 in /webview
Proposed
#208 chore(deps-dev): bump @vitejs/plugin-react from 6.0.1 to 6.0.2 in /webview
Proposed
#209 chore(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update
Proposed
#210 chore(deps-dev): bump vitest from 3.2.4 to 4.1.0 in /webview in the npm_and_yarn group across 1 directory
Proposed
#212 fix(security): least-privilege workflows, pinned actions, webview dependency updates
Proposed
#213 ci: baseline three historical github-pat findings by exact fingerprint
42 Issues closed from 1 user
Closed
#45 Bus: 'JarvisBusWorld' documentation drift across 20+ docstrings post fb41c5f rename to WKContentWorld.page
Closed
#19 Memory: stale Phase 7 hedge language in MemoryStore.swift doc-comments
Closed
#47 Bus: WebviewBridge.sendRaw audioLevel allows NaN → null JSON → JS decode error
Closed
#37 Voice: STTBackendSelector constant snake_case vs call-site camelCase mismatch
Closed
#178 ci: add OpenSSF Scorecard workflow + badge
Closed
#46 Build: stale webview bundle artifacts in App/Resources/webview/assets/ (~50MB dead weight)
Closed
#23 Agent: prompt cache hints never trigger in production — preamble below 4096-char threshold
Closed
#186 ci: CI-pushed tags don't trigger release.yml — Release object never created
Closed
#188 ci: age-filter zombie reaper so sibling runners on Grogu don't kill each other
Closed
#182 ci: reap orphan xctest/swift-test on self-hosted runner before each job
Closed
#58 D-7: reconcile Ollama model baseline — qwen2.5-coder:32b not installed; qwen3.6 + q8_0 in use
Closed
#180 ci: move swift-packages matrix to self-hosted runner (Grogu)
Closed
#56 D-5: build custom libsqlite3.dylib with SQLITE_ENABLE_LOAD_EXTENSION=1 (user env work)
Closed
#57 D-6: bundle vec0.dylib (likely already closed via static linkage in 48ad8d6)
Closed
#42 HUD: DevOverlay hollow shell — DevSnapshotEmitter never built, broadcaster drained to /dev/null
Closed
#89 Open Status panel + Dev Overlay alongside HUD on app start
Closed
#88 SHELL-06: Input Monitoring TCC denial HUD banner + System Settings deep link missing
Closed
#87 PTT (VOICE-13) is dead — hotkey unbound at launch; pttDown/pttUp never reach VoiceController
Closed
#51 B-06: Chat panel doesn't auto-scroll as tokens stream (M-7 partial; DOM scroll in vitest)
Closed
#41 HUD: MenuBarIconController.transition(to:) is production-dead — icon never animates per agent state
Closed
#40 Bus: BridgeNavigationDelegate has no didFail arm — silent black HUD on bundle/JS load failure
Closed
#36 Agent: AgentHudIntent stream dormant; HUD shows no signal during thinking/speaking
Closed
#34 Voice: SileroVAD hidden state persists across sessions; quiet onset misclassified after prior speech
Closed
#33 Voice: BootHealthProbe doesn't probe wake-word DAG / SpeechAnalyzer assets / TTS engine
Closed
#32 Voice: OpenWakeWordSession buffers grow without bound; masked today by P0-1 cancellation
Closed
#31 Voice: VoiceTTSAdapter.tierResolver never wired; tts.tier config dead for real synthesis
Closed
#30 Voice: .ttsStopped emitted only on barge-in; natural completion leaves ducking engaged
Closed
#29 Voice: STT backend hard-coded; whisperKitFallback config dead; camelCase/snake_case mismatch
Closed
#28 Voice: wake-word dies on every audio-graph rebuild — cancelInFlight calls cancel() not stopFeed()
Closed
#21 MCP: tool-result bytes double-capped at 8KB — replay log loses original blob; doc-comment is wrong
Closed
#20 MCP: ReplayingToolResultObserver.turnIDResolver permanently nil — SEC-07 dual-write + ME-04 channel dead in prod
Closed
#16 Memory: hybridSearchSQL passes raw user text to FTS5 MATCH — punctuation crashes queries
Closed
#15 Memory: facts.source_turn_id stores FNV hash, not turns.id rowid — correlation permanently broken
Closed
#14 Agent: search_memory missing from preamble — proactive recall dead by discovery gap
Closed
#13 Memory: replay log poisoned by synthetic memory-trigger-<hash> turn_ids; all batches FK-fail since 18:48
Closed
#12 Memory: facts_vec never written — semantic search permanently empty (FTS5-only RRF)
Closed
#63 Stash triage: resurface or drop stash@{0} (Voice Log / camera / DevOverlay from 2026-05-06)
Closed
#3 Mid-session camera TCC revoke not observed — wrong notification + becameAuthorized has no production caller
Closed
#1 Vision T2 escalation always dies — orchestrator passes t2Available=true while MissingT2Provider is the only T2 wired
Closed
#2 FrameAttachController leaks pendingFrame on .rejected submit — D-15 byte-release window violated
Closed
#65 P0: Apply commenting style guide to App/AppDelegate.swift
Closed
#83 v1.1 docs: flip Plan 10-02 AC-05 FAIL→PASS + author 10-02c-SUMMARY.md
153 Issues created by 1 user
Opened
#1 Vision T2 escalation always dies — orchestrator passes t2Available=true while MissingT2Provider is the only T2 wired
Opened
#2 FrameAttachController leaks pendingFrame on .rejected submit — D-15 byte-release window violated
Opened
#3 Mid-session camera TCC revoke not observed — wrong notification + becameAuthorized has no production caller
Opened
#4 M-0: pre-migration gates (JarvisAPI package, harness, behavioral gates, dual-handshake)
Opened
#5 M-1: Self surface (getSelfState, TCC events, B-08 dissolution)
Opened
#6 M-2: Settings surface (canonical config writer; F-001/UQ-4)
Opened
#7 M-3: Diagnostics surface (HUD state + banner queue + DevSnapshot + replay stream)
Opened
#8 M-4: Memory surface (factMutated/factsRetrieved/searchFacts; cache-eligibility regression gate)
Opened
#9 M-5: Vision surface (typed requestFrameAttach; B-03 closure via WKWebView round-trip)
Opened
#10 M-6: Voice surface (audio-graph fix + synthesizeTurn; B-04/B-05 closure)
Opened
#11 M-7: Turn surface keystone (per-turn batcher + listTurns hydration; B-06 partial)
Opened
#12 Memory: facts_vec never written — semantic search permanently empty (FTS5-only RRF)
Opened
#13 Memory: replay log poisoned by synthetic memory-trigger-<hash> turn_ids; all batches FK-fail since 18:48
Opened
#14 Agent: search_memory missing from preamble — proactive recall dead by discovery gap
Opened
#15 Memory: facts.source_turn_id stores FNV hash, not turns.id rowid — correlation permanently broken
Opened
#16 Memory: hybridSearchSQL passes raw user text to FTS5 MATCH — punctuation crashes queries
Opened
#17 Memory: BootHealthProbe evidence misleading post-FK-fix; no end-to-end writer probe
Opened
#18 Memory: MemoryReplaySink.record fire-and-forget Task swallows errors silently
Opened
#19 Memory: stale Phase 7 hedge language in MemoryStore.swift doc-comments
Opened
#20 MCP: ReplayingToolResultObserver.turnIDResolver permanently nil — SEC-07 dual-write + ME-04 channel dead in prod
Opened
#21 MCP: tool-result bytes double-capped at 8KB — replay log loses original blob; doc-comment is wrong
Opened
#22 MCP: 'MCPRuntime built — N tools' boot log undercounts (stdio only) — misleading triage signal
Opened
#23 Agent: prompt cache hints never trigger in production — preamble below 4096-char threshold
Opened
#24 Agent: assistant text blocks alongside tool_use are dropped from message history
Opened
#25 MCP: get_active_audio_route conditionally unregistered when voice DAG fails; preamble still advertises it
Opened
#26 MCP: confirmation panel beginSheet may be hidden in fullscreen/multi-monitor; silent timeout-denial
Opened
#27 Bus: toolCall args-revealed reuses toolCallStart; no distinct post-approval event
Opened
#28 Voice: wake-word dies on every audio-graph rebuild — cancelInFlight calls cancel() not stopFeed()
Opened
#29 Voice: STT backend hard-coded; whisperKitFallback config dead; camelCase/snake_case mismatch
Opened
#30 Voice: .ttsStopped emitted only on barge-in; natural completion leaves ducking engaged
Opened
#31 Voice: VoiceTTSAdapter.tierResolver never wired; tts.tier config dead for real synthesis
Opened
#32 Voice: OpenWakeWordSession buffers grow without bound; masked today by P0-1 cancellation
Opened
#33 Voice: BootHealthProbe doesn't probe wake-word DAG / SpeechAnalyzer assets / TTS engine
Opened
#34 Voice: SileroVAD hidden state persists across sessions; quiet onset misclassified after prior speech
Opened
#35 Voice: voiceHudCont.finish() on shutdown is one-way ratchet; blocks future re-install
Opened
#36 Agent: AgentHudIntent stream dormant; HUD shows no signal during thinking/speaking
Opened
#37 Voice: STTBackendSelector constant snake_case vs call-site camelCase mismatch
Opened
#38 Voice: AVSpeechSynth setPendingContinuation overwrites without resuming; latent hang outside actor
Opened
#39 Voice: whisperKitFallback feature flag is test-quality dead code
Opened
#40 Bus: BridgeNavigationDelegate has no didFail arm — silent black HUD on bundle/JS load failure
Opened
#41 HUD: MenuBarIconController.transition(to:) is production-dead — icon never animates per agent state
Opened
#42 HUD: DevOverlay hollow shell — DevSnapshotEmitter never built, broadcaster drained to /dev/null
Opened
#43 Bus: sessionHistory(turns:) case has no producer and no consumer — dead-letter since 2.1.0 bump
Opened
#44 HUD: audioLevel producer works but consumer is no-op break; 30Hz wire frames wasted
Opened
#45 Bus: 'JarvisBusWorld' documentation drift across 20+ docstrings post fb41c5f rename to WKContentWorld.page
Opened
#46 Build: stale webview bundle artifacts in App/Resources/webview/assets/ (~50MB dead weight)
Opened
#47 Bus: WebviewBridge.sendRaw audioLevel allows NaN → null JSON → JS decode error
Opened
#48 B-03: HUD camera button click does nothing (lands M-5)
Opened
#49 B-04: Voice input dead — wake-word + STT silent (lands M-6)
Opened
#50 B-05: TTS silent — text replies not spoken (lands M-6, Voice.synthesizeTurn contract)
Opened
#51 B-06: Chat panel doesn't auto-scroll as tokens stream (M-7 partial; DOM scroll in vitest)
Opened
#52 B-07: Voice Log menu item missing (deferred to v1.1 post-M-6)
Opened
#53 B-08: get_self_state correct ID but Claude paraphrases model name (lands M-1)
Opened
#54 B-7-followup: verify AudioLevelEmitter production wiring (likely already done; consumer still dead)
Opened
#55 Voice: TTSInterruptTests.testI3 10s deterministic flake (pre-existing baseline)
Opened
#56 D-5: build custom libsqlite3.dylib with SQLITE_ENABLE_LOAD_EXTENSION=1 (user env work)
Opened
#57 D-6: bundle vec0.dylib (likely already closed via static linkage in 48ad8d6)
Opened
#58 D-7: reconcile Ollama model baseline — qwen2.5-coder:32b not installed; qwen3.6 + q8_0 in use
Opened
#59 Docs: flip Plan 10-02 AC-05 FAIL→PASS; author 10-02c-SUMMARY.md
Opened
#60 Docs: reconcile REQUIREMENTS.md traceability table (~70/79 actually satisfied)
Opened
#61 Docs: run /gsd-validate-phase 1..9 retroactive Nyquist sweep (deferred to post-M-7)
Opened
#62 Live verify: CacheHints / streamTruncated outcome classifier after relaunch
Opened
#63 Stash triage: resurface or drop stash@{0} (Voice Log / camera / DevOverlay from 2026-05-06)
Opened
#64 Apply code-commenting style guide across codebase
Opened
#65 P0: Apply commenting style guide to App/AppDelegate.swift
Opened
#66 P1: Apply commenting style guide to packages/AgentCore/Sources/AgentOrchestrator/AgentOrchestrator.swift
Opened
#67 P1: Apply commenting style guide to packages/Bus/Sources/Bus/WebviewBridge.swift
Opened
#68 P1: Apply commenting style guide to packages/MCP/Sources/MCP/MCPRuntime.swift
Opened
#69 P1: Apply commenting style guide to packages/MCP/Sources/MCP/MCPClient.swift
Opened
#70 P2: Apply commenting style guide to Voice package load-bearing actors
Opened
#71 P2: Apply commenting style guide to Memory package load-bearing actors
Opened
#72 P2: Apply commenting style guide to Vision package load-bearing actors
Opened
#73 P3: Apply commenting style guide to leaf packages (opportunistic)
Opened
#74 Build scripts/check-no-stale-plan-id-comments.sh grep gate
Opened
#75 Add code-commenting style guide TL;DR to CLAUDE.md
Opened
#76 v1.0 API Migration — UI/Backend separation (M-0..M-7)
Opened
#77 v1.1: Orpheus TTS (tier 2) activation — weights download + TTFA verification
Opened
#78 v1.1: WhisperKit STT fallback activation — feature flag flip + model fetch
Opened
#79 v1.1 F-Q-E: long-running query cancellation for Memory.searchFacts and Turn.listTurns
Opened
#80 v1.1 F-15: Self vs System surface rename polish
Opened
#81 v1.1 OQ-T4: runtime origin-tagging on events for single-writer assertion
Opened
#82 v1.1 OQ-T2: promote fixture corpus format from harness-internal to spec-documented
Opened
#83 v1.1 docs: flip Plan 10-02 AC-05 FAIL→PASS + author 10-02c-SUMMARY.md
Opened
#84 v1.2: Vision T2 sidecar (vLLM/MLX) activation
Opened
#85 v1.2: Presence pipeline activation (camera-derived atDesk/presenceConfidence)
Opened
#86 v1.2: Multi-client subscription (post-v1 — only if second client materializes)
Opened
#87 PTT (VOICE-13) is dead — hotkey unbound at launch; pttDown/pttUp never reach VoiceController
Opened
#88 SHELL-06: Input Monitoring TCC denial HUD banner + System Settings deep link missing
Opened
#89 Open Status panel + Dev Overlay alongside HUD on app start
Opened
#90 M-0: scaffold packages/JarvisAPI/ package skeleton (types only, no conformers)
Opened
#91 M-0: APIClock protocol + RealClock + ManualClock (G-002)
Opened
#92 M-0: TransportMode + parametric harness ScenarioRunner scaffolding (UQ-5)
Opened
#93 M-0: JARVIS_HARNESS=1 runtime gate + ProviderOverrides (UQ-1)
Opened
#94 M-0: WebviewBridge dual-channel handshake — accept [2.3.0, 2.4.0-rc]
Opened
#95 M-0: Promote check-single-writer-hudstate.sh to behavioral probe (R-004)
Opened
#96 M-0: Promote check-install-order.sh to behavioral probe (R-001)
Opened
#97 M-0: BusForwarder sink fanout + check-fanout-drainer.sh boundary gate (R-009)
Opened
#98 M-0: hoist Mock*/Stub*/Fake* test doubles into packages/Harness/Sources
Opened
#99 M-0: check-no-schema-migration-in-turn.sh boundary gate (Failure Mode 5)
Opened
#100 M-1: define JarvisAPI.Self protocol (getSelfState, device enumeration, TCC events)
Opened
#101 M-1: implement Self surface adapter wrapping SelfStateAdapter; plumb events
Opened
#102 M-1: dissolve B-08 — canonical modelDisplayName typed at API boundary (N=10 trials)
Opened
#103 M-1: _forceTCCStatus harness command (UQ-1 gated, G-003)
Opened
#104 M-1: harness scenarios S-SELF-001..004 in both transport modes (UQ-5)
Opened
#105 M-2: define JarvisAPI.Settings protocol + adapter wrapping ConfigStore
Opened
#106 M-2: Settings commands — setProvider/setTTSTier/setSTTBackend/setFeatureFlag/setHotkey/storeAPIKey
Opened
#107 M-2: Settings.setWakeWordMuted/setVoiceRunning/setLaunchAtLogin (UQ-4 slim Voice prep)
Opened
#108 M-2: harness scenarios S-SET-001..008 in both transport modes (UQ-5)
Opened
#109 M-3: Diagnostics surface — getDevSnapshot/devSnapshotUpdated/toggleDevOverlay
Opened
#110 M-3: HUD state moves to Diagnostics (F-003); delete legacy hudState emit
Opened
#111 M-3: Diagnostics banner queue — enqueued/dismissed/dismissBanner + copyStateDump (F-016)
Opened
#112 M-3: Diagnostics.streamReplayEvents + snapshotReplayEvents (R-017 single-emit)
Opened
#113 M-3: Diagnostics.hardBlockTriggered + 1s pre-termination delay (G-012)
Opened
#114 M-3: harness scenarios S-DIAG-001..009 in both transport modes (UQ-5)
Opened
#115 M-4: define JarvisAPI.Memory protocol + adapter (listRecentFacts/searchFacts/listTurns)
Opened
#116 M-4: Memory.forgetFact command (F-009 — no requiresConfirmation transport leak)
Opened
#117 M-4: factMutated + factsRetrieved events; delete legacy emit (R-017)
Opened
#118 M-4: Memory.searchFacts typed degraded result + memoryVectorAvailable flag (R-011)
Opened
#119 M-4: orchestrator history-load via Memory surface + cache-eligibility regression gate (R-006)
Opened
#120 M-4: harness scenarios S-MEM-001..008 + S-MEM-CACHE-REGRESSION (UQ-5)
Opened
#121 M-5: define JarvisAPI.Vision.requestFrameAttach typed Result (R-003)
Opened
#122 M-5: Vision events — framePending/frameSent/frameExpired (F-007/F-010)
Opened
#123 M-5: Vision.cancelFrameAttach command + getFrameAttachState query
Opened
#124 M-5: webview HUD camera button — typed Vision.requestFrameAttach call (atomic with Swift)
Opened
#125 M-5: harness scenarios S-VIS-001..006 (B-03 dissolution via WKWebView round-trip)
Opened
#126 M-6a: define JarvisAPI.Voice + getVoiceState query (no audio-graph change)
Opened
#127 M-6a: Voice events bridged through API surface (no audio-graph change)
Opened
#128 M-6a: Voice runtime verbs — pttDown/pttUp/cancelTTS (UQ-4 slim Voice)
Opened
#129 M-6a: Voice harness commands — _injectAudioFrame/_injectWakeWord/_injectSTT/_observeTTSAudio (UQ-1, G-001)
Opened
#130 M-6b: startVoice() surfaces audioGraphFailed if ringBuffer nil (B-04, R-007)
Opened
#131 M-6b: Voice.synthesizeTurn explicit-command contract (B-05, UQ-3 (A))
Opened
#132 M-6b: orchestrator issues synthesizeTurn on voice-source turnEnded(.completed) (B-05)
Opened
#133 M-6b: bargeIn-driven cancelTTS internal invariant (R-018 substrate)
Opened
#134 M-6: harness scenarios S-VOICE-001..012 in both transport modes (B-04 + B-05 BLOCKING gates)
Opened
#135 M-7: OutboundBatcher.postToken takes turnId; per-turn flush (R-002 BLOCKING)
Opened
#136 M-7: Turn surface — submitTurn/cancelTurn/bargeIn/respondToConfirmation
Opened
#137 M-7: Turn events — tokenStreamed(seq)/thinkingStreamed(seq)/turnTextComplete (F-018, B-06)
Opened
#138 M-7: ConfirmationBroker reads timeout from ConfirmationPolicy (R-008, F-013)
Opened
#139 M-7: Turn.getActiveTurn exposes toolCalls + accumulatedThinking (F-019 late-connect)
Opened
#140 M-7: webview retires sessionHistory push; calls Turn.listTurns on connect (R-015)
Opened
#141 M-7: Turn.bargeIn triggers Voice.cancelTTS (R-018 surface wiring)
Opened
#142 M-7: retire BusOutbound.hudState/sessionHistory; bump BUS_PROTOCOL_VERSION=2.4.0 strict (post-soak)
Opened
#143 M-7: harness scenarios S-TURN-001..018 (R-002 BLOCKING, B-06 partial, full regression)
Opened
#175 MCP: lift replay-log fidelity above 8 KB
Opened
#176 deps(webview): bump vitest 3.x → 4.x major
Opened
#177 webview: migrate vitest@3 esbuild plugin-option to oxc
Opened
#178 ci: add OpenSSF Scorecard workflow + badge
Opened
#179 deps(webview): reopen TypeScript 6.0.3 bump
Opened
#180 ci: move swift-packages matrix to self-hosted runner (Grogu)
Opened
#182 ci: reap orphan xctest/swift-test on self-hosted runner before each job
Opened
#186 ci: CI-pushed tags don't trigger release.yml — Release object never created
Opened
#188 ci: age-filter zombie reaper so sibling runners on Grogu don't kill each other
Opened
#211 Harden workflow permissions, pin actions, and update vulnerable webview dependencies