What I've added on my forks (before merging your latest in)
I've been running forks of ai-visualizer, backtalk, and fullstack-agent for a
few days and built a few things on top before pulling your latest changes in
today. Figured I'd write these up in case any are useful upstream, and so
they don't get lost/re-invented. I've already merged your latest into my
forks, so this is just "here's what I had that you didn't" as of that merge.
ai-visualizer
Cost and transcription overlays (core.js, server.py, ai-visualizer.json)
A live overlay on the visualizer face showing session cost and running
transcription text, backed by a new server.py endpoint.
Inbox-queue widget + real billing data (follow-up commit)
Extended the cost overlay to pull actual billing numbers instead of an
estimate, plus a widget showing what's sitting in the inbox queue.
Both are additive UI/overlay work — didn't touch your existing face
rendering paths, so should apply cleanly as a feature branch if you want to
look at it.
backtalk
Singleton lock (backtalk/main.py)
Refuses to start a second backtalk process while one is already running,
so you don't end up with two processes fighting over the same hotkey/mic. A
lock file at .backtalk.lock holds the owning PID; a stale lock left by a
crashed run (PID no longer alive) is detected and reclaimed automatically.
Windows liveness check goes through OpenProcess with
PROCESS_QUERY_LIMITED_INFORMATION rather than os.kill(pid, 0) — on
Windows that call actually maps to TerminateProcess under the hood, so it
isn't safe to use as a read-only liveness probe.
Session resume + playback speed config — built this independently
around the same time you did (my commit 2026-08-18, yours 2026-08-19). Mine
added resume_last_session (opt-in, off by default) and a speed config
key for Kokoro. Yours ended up more complete — it wires the resume id
through the permission-gate/can_use_tool path at connect and falls back
cleanly to a fresh session if a saved resume id is stale, mine didn't do
either. I took your version during the merge; flagging only so you know two
people hit the same gap at once, not because I think there's anything left
to reconcile.
fullstack-agent
meeting-transcriber wired into start.bat as "agent ears"
I run a fourth local tool (meeting-transcriber — dual-track recording +
faster-whisper transcription + summary, not one of your repos) and added it
to the launcher alongside face/hands/voice, gated on a Python 3.13 install
check with a clear skip message if it's not found. Not something you'd want
verbatim since it depends on a tool you don't ship, but flagging the pattern
(a fourth optional leg in start.bat) in case it's useful shape for your own
"one more optional piece" additions.
Not worth a mention
ai-memory-vault and ai-marketing-skills forks only had housekeeping on my
side (CHANGELOG backfill, merge commits) — no feature drift there.
What I've added on my forks (before merging your latest in)
I've been running forks of ai-visualizer, backtalk, and fullstack-agent for a
few days and built a few things on top before pulling your latest changes in
today. Figured I'd write these up in case any are useful upstream, and so
they don't get lost/re-invented. I've already merged your latest into my
forks, so this is just "here's what I had that you didn't" as of that merge.
ai-visualizer
Cost and transcription overlays (
core.js,server.py,ai-visualizer.json)A live overlay on the visualizer face showing session cost and running
transcription text, backed by a new server.py endpoint.
Inbox-queue widget + real billing data (follow-up commit)
Extended the cost overlay to pull actual billing numbers instead of an
estimate, plus a widget showing what's sitting in the inbox queue.
Both are additive UI/overlay work — didn't touch your existing face
rendering paths, so should apply cleanly as a feature branch if you want to
look at it.
backtalk
Singleton lock (
backtalk/main.py)Refuses to start a second
backtalkprocess while one is already running,so you don't end up with two processes fighting over the same hotkey/mic. A
lock file at
.backtalk.lockholds the owning PID; a stale lock left by acrashed run (PID no longer alive) is detected and reclaimed automatically.
Windows liveness check goes through
OpenProcesswithPROCESS_QUERY_LIMITED_INFORMATIONrather thanos.kill(pid, 0)— onWindows that call actually maps to
TerminateProcessunder the hood, so itisn't safe to use as a read-only liveness probe.
Session resume + playback speed config — built this independently
around the same time you did (my commit 2026-08-18, yours 2026-08-19). Mine
added
resume_last_session(opt-in, off by default) and aspeedconfigkey for Kokoro. Yours ended up more complete — it wires the resume id
through the permission-gate/
can_use_toolpath at connect and falls backcleanly to a fresh session if a saved resume id is stale, mine didn't do
either. I took your version during the merge; flagging only so you know two
people hit the same gap at once, not because I think there's anything left
to reconcile.
fullstack-agent
meeting-transcriber wired into
start.batas "agent ears"I run a fourth local tool (
meeting-transcriber— dual-track recording +faster-whisper transcription + summary, not one of your repos) and added it
to the launcher alongside face/hands/voice, gated on a Python 3.13 install
check with a clear skip message if it's not found. Not something you'd want
verbatim since it depends on a tool you don't ship, but flagging the pattern
(a fourth optional leg in
start.bat) in case it's useful shape for your own"one more optional piece" additions.
Not worth a mention
ai-memory-vault and ai-marketing-skills forks only had housekeeping on my
side (CHANGELOG backfill, merge commits) — no feature drift there.