mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
2.0 KiB
2.0 KiB
Agent: codex-texthooker-color-ws-20260220T005844Z-r7m2
- alias: codex-texthooker-color-ws
- mission: Fix texthooker websocket payload so token highlight colors render
- status: completed
- branch: main
- started_at: 2026-02-20T00:58:44Z
- heartbeat_minutes: 5
Current Work (newest first)
- [2026-02-20T01:01:00Z] handoff: implemented websocket subtitle serialization with token markup classes (
word-known,word-n-plus-one,word-frequency-*,word-jlpt-*) so texthooker-ui receives color metadata. - [2026-02-20T01:01:00Z] change:
subtitle-changenow sends immediate plain overlay update while async processing path publishes tokenized/fallback payloads to both overlay and websocket; tokenization now runs when texthooker websocket has clients even without overlay windows. - [2026-02-20T01:01:00Z] test:
bun test src/core/services/subtitle-processing-controller.test.ts src/core/services/subtitle-ws.test.tspass (7/7);bun run buildpass (expected macOS helper swiftcache sandbox fallback). - [2026-02-20T00:58:44Z] intent: debug missing texthooker colors after UI update; patch SubMiner websocket/tokenization integration path.
- [2026-02-20T00:58:44Z] progress: root cause found:
SubtitleWebSocket.broadcast()sends only plain sentence text while token classes are generated only in renderer overlay path; texthooker never receives token-markup metadata. - [2026-02-20T00:58:44Z] planned files:
src/core/services/subtitle-ws.ts,src/main.ts,src/core/services/subtitle-processing-controller.ts, tests undersrc/core/services/*. - [2026-02-20T00:58:44Z] backlog: associated with existing
TASK-87(frequency/N+1 init + highlighting behavior).
Files Touched
docs/subagents/INDEX.mddocs/subagents/agents/codex-texthooker-color-ws-20260220T005844Z-r7m2.mdsrc/main.tssrc/core/services/subtitle-ws.tssrc/core/services/subtitle-ws.test.tssrc/core/services/subtitle-processing-controller.tssrc/core/services/subtitle-processing-controller.test.ts
Open Questions / Blockers
- none
Next Step
- none