Refs #34. The portable package dank/dankvoice now carries the full behaviour — 41/41 black-box suite against the built artifact, typecheck gate, install smoke — plus six upgrades the drop-in never had: settings-file endpoint layer, neutral model default, once-only disarm warning, session-scoped arming, mood personas, pipelined prefetch (next segment synthesizes while the current one plays; playback still never stacks).
What this branch does
Deletes agent/extensions/dankvoice.ts — superseded by the package.
Deletes tests/dankvoice.bats — its 26 tests are a strict subset of the package suite (names ported 1:1, verified by diff of test names); the package adds 16 more.
Repoints omp-docs/core/dankvoice.md — now fleet wiring (frank-tts resolution, @tiny → frank-zealot, the enable_thinking hybrid-endpoint law, voice/roster contract) + the cutover procedure. Command reference and knob list stay owned by the package README; no duplication.
Index + work-log entries per OKF law. kb-lint: 0 violations. Full bats tests/ green on this branch.
Merge contract — do NOT merge before step 1 on this box
pi install git:http://192.168.0.143:3000/dank/dankvoice.git
In a session: /say status → then "Speak a test phrase" from the /say menu. It must be audible.
Both transports persist to the same ~/.omp/cache/dankvoice.json, so menu state (voice, sink, player, cap) survives the swap untouched. If merge is skipped at step 1, voice goes silent when the drop-in vanishes — that's why the order is the contract.
Rollback
git revert the merge commit restores the drop-in; package uninstall is pi uninstall. Settings file is shared, no state to migrate either way.
# Cutover: drop-in → `dank/dankvoice` package
Refs #34. The portable package `dank/dankvoice` now carries the full behaviour — 41/41 black-box suite against the built artifact, typecheck gate, install smoke — plus six upgrades the drop-in never had: settings-file endpoint layer, neutral model default, once-only disarm warning, session-scoped arming, mood personas, pipelined prefetch (next segment synthesizes while the current one plays; playback still never stacks).
## What this branch does
* **Deletes `agent/extensions/dankvoice.ts`** — superseded by the package.
* **Deletes `tests/dankvoice.bats`** — its 26 tests are a strict subset of the package suite (names ported 1:1, verified by diff of test names); the package adds 16 more.
* **Repoints `omp-docs/core/dankvoice.md`** — now fleet wiring (frank-tts resolution, @tiny → frank-zealot, the `enable_thinking` hybrid-endpoint law, voice/roster contract) + the cutover procedure. Command reference and knob list stay owned by the package README; no duplication.
* Index + work-log entries per OKF law. `kb-lint`: 0 violations. Full `bats tests/` green on this branch.
## Merge contract — do NOT merge before step 1 on this box
1. `pi install git:http://192.168.0.143:3000/dank/dankvoice.git`
2. In a session: `/say status` → then "Speak a test phrase" from the `/say` menu. It must be audible.
3. Merge, `git -C ~/.omp fetch && git merge --ff-only origin/main`, restart the session.
Both transports persist to the same `~/.omp/cache/dankvoice.json`, so menu state (voice, sink, player, cap) survives the swap untouched. If merge is skipped at step 1, voice goes silent when the drop-in vanishes — that's why the order is the contract.
## Rollback
`git revert` the merge commit restores the drop-in; package uninstall is `pi uninstall`. Settings file is shared, no state to migrate either way.
---
cwd: /home/blank/.omp/wt/feat-34-dankvoice-cutover · session: wt-20261019-011132-7c8a99d
The extension's full behaviour now lives in dank/dankvoice (41/41
black-box suite against the built artifact; this branch's 26 drop-in
tests are a strict subset, names ported 1:1). Delete the drop-in and
its bats suite; repoint omp-docs/core/dankvoice.md at the package,
keeping only fleet wiring (frank-tts + @tiny resolution, the
enable_thinking hybrid law, voice/roster contract) and the cutover
procedure. kb-lint 0 violations; bats tests/ 45/45.
Refs #34
dank
merged commit dd4713fa81 into main2026-10-19 12:43:48 -07:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Cutover: drop-in →
dank/dankvoicepackageRefs #34. The portable package
dank/dankvoicenow carries the full behaviour — 41/41 black-box suite against the built artifact, typecheck gate, install smoke — plus six upgrades the drop-in never had: settings-file endpoint layer, neutral model default, once-only disarm warning, session-scoped arming, mood personas, pipelined prefetch (next segment synthesizes while the current one plays; playback still never stacks).What this branch does
agent/extensions/dankvoice.ts— superseded by the package.tests/dankvoice.bats— its 26 tests are a strict subset of the package suite (names ported 1:1, verified by diff of test names); the package adds 16 more.omp-docs/core/dankvoice.md— now fleet wiring (frank-tts resolution, @tiny → frank-zealot, theenable_thinkinghybrid-endpoint law, voice/roster contract) + the cutover procedure. Command reference and knob list stay owned by the package README; no duplication.kb-lint: 0 violations. Fullbats tests/green on this branch.Merge contract — do NOT merge before step 1 on this box
pi install git:http://192.168.0.143:3000/dank/dankvoice.git/say status→ then "Speak a test phrase" from the/saymenu. It must be audible.git -C ~/.omp fetch && git merge --ff-only origin/main, restart the session.Both transports persist to the same
~/.omp/cache/dankvoice.json, so menu state (voice, sink, player, cap) survives the swap untouched. If merge is skipped at step 1, voice goes silent when the drop-in vanishes — that's why the order is the contract.Rollback
git revertthe merge commit restores the drop-in; package uninstall ispi uninstall. Settings file is shared, no state to migrate either way.cwd: /home/blank/.omp/wt/feat-34-dankvoice-cutover · session: wt-20261019-011132-7c8a99d