bzuccaro
f98043c21b
fix: self-heal in-flight counts by pruning stale request ids
...
On a long-lived SSE connection a missed remove leaves a stale request id in
the tracker forever; llama-swap only sends a fresh snapshot on connect, so
counts drifted up and stayed stuck. The tracker now timestamps each request
id (upserts refresh it) and prunes ids not updated within 120s, on every
inflight event and on a 30s runtime interval. Removes also accept numeric
ids defensively.
2026-08-15 14:26:28 -06:00
bzuccaro
771cb81eb3
Prepare Elgato Marketplace listing: brand author, store assets, listing text
...
- manifest Author -> c4ch3c4d3 and repackage .streamDeckPlugin
- scripts/store-assets.mts renders real key SVGs into store PNGs (app icon 288, thumbnail + 3 gallery 1920x960)
- store-assets/listing.md: description, tags, release notes, submission checklist
2026-08-14 13:25:38 -06:00
bzuccaro
6d710b2089
docs: remove superpowers planning documents
2026-08-14 13:17:34 -06:00
bzuccaro
ef4043dd4e
docs: update README for usage stats display and GPU combinations
2026-08-14 13:16:07 -06:00
bzuccaro
2eef59d092
test: strengthen refcount and setConfig regression coverage
2026-08-14 13:06:26 -06:00
bzuccaro
7f877c4efb
plan: fix stats re-registration ordering after config change
2026-08-14 12:47:17 -06:00
bzuccaro
2b7764f96d
Add Usage Stats + GPU Combinations implementation plan
2026-08-14 12:46:54 -06:00
bzuccaro
93570dc9ba
spec: clarify All models datasource handling
2026-08-14 12:45:28 -06:00
bzuccaro
e37d1360be
Add Usage Stats + GPU Combinations design
2026-08-14 12:45:21 -06:00
bzuccaro
ca478ee124
style: use a constant dark background for the In-Flight Monitor key
2026-08-14 12:11:07 -06:00
bzuccaro
ca37a690ca
fix: render in-flight count as static white (remove blink pulse)
2026-08-14 12:09:57 -06:00
bzuccaro
07fea457f1
fix: track in-flight requests by id; handle llama-swap upsert/remove events
...
llama-swap emits inflight events with operation 'upsert' (a single request,
re-emitted as elapsed_ms updates) and id-only 'remove' events. The decoder
ignored 'upsert' and dropped every id-only remove, so the tracker only ever
reflected the connect-time snapshot and the count got stuck (e.g. at '1').
The tracker now keys in-flight state by request id (snapshot/add replace by
id; remove deletes by id), and the decoder normalizes 'upsert' to 'add' and
extracts the id from bare removes.
2026-08-14 12:08:02 -06:00
bzuccaro
a805195c49
Show in-flight request count + activity spark on In-Flight Monitor key
...
The key now renders the live request count (large) when a model is active,
plus a 1Hz count-trend sparkline of the last 60s in a bottom strip. IDLE/
LOADING/OFF/OFFLINE states unchanged. History lives in per-key state with
a sampler cleared on disappear.
2026-08-14 11:20:51 -06:00
bzuccaro
5a6ad54b08
Add In-Flight Monitor count + activity spark design
2026-08-14 11:19:20 -06:00
bzuccaro
35481bf387
docs: document multi-key support and shared connection model
2026-08-14 11:01:32 -06:00
bzuccaro
733bc2b4f9
fix: support multiple keys per action and harden runtime/parsing
2026-08-14 10:59:25 -06:00
bzuccaro
7e3377f932
docs: add README; verify plugin install and packaging
2026-08-14 10:53:26 -06:00
bzuccaro
17c8ef885f
feat: wire entry point, manifest, property inspectors, and assets
2026-08-14 10:52:13 -06:00
bzuccaro
c0e1ab8303
fix: show NO MODEL placeholder instead of OFFLINE when unconfigured
2026-08-14 10:51:02 -06:00
bzuccaro
966ccede3a
docs: make NO MODEL placeholder reachable in inflight action
2026-08-14 10:50:50 -06:00
bzuccaro
2ff7d55739
feat: implement inflight monitor and GPU graph actions
2026-08-14 10:49:50 -06:00
bzuccaro
325722f072
docs: restore plan code fence balance after datasource note
2026-08-14 10:49:06 -06:00
bzuccaro
f45b29fcaf
fix: satisfy JsonObject constraints for settings types
2026-08-14 10:47:38 -06:00
bzuccaro
06eb23bd6a
docs: fix CfgSettings/DataSourceItem to satisfy JsonObject in plan
2026-08-14 10:47:20 -06:00
bzuccaro
8818dac640
feat: add shared runtime and PI datasource handlers
2026-08-14 10:46:42 -06:00
bzuccaro
55e260c31b
feat: add SVG key renderers for inflight and GPU graph actions
2026-08-14 10:44:06 -06:00
bzuccaro
79917cd054
feat: add SSE event feed for llama-swap api/events
2026-08-14 10:43:03 -06:00
bzuccaro
b54eeeadc4
feat: add SSE parser and in-flight request tracker
2026-08-14 10:42:17 -06:00
bzuccaro
c6d50f6daf
fix: import LlamaSwapConfig from util in metrics poller
2026-08-14 10:41:28 -06:00
bzuccaro
23cf6d168a
docs: import LlamaSwapConfig from util in poller plan
2026-08-14 10:41:17 -06:00
bzuccaro
7dba134863
feat: add metrics poller with ring buffers and GPU aggregates
2026-08-14 10:41:04 -06:00
bzuccaro
28cc34dc59
feat: add llama-swap HTTP client
2026-08-14 10:40:09 -06:00
bzuccaro
52b56dcd58
feat: add Prometheus metrics parser for llama-swap GPU series
2026-08-14 10:39:26 -06:00
bzuccaro
953be547f0
feat: add shared util helpers and config
2026-08-14 10:38:42 -06:00
bzuccaro
fde5fc75af
docs: correct shorten truncation expectation to verified output
2026-08-14 10:38:35 -06:00
bzuccaro
032ca6b2b7
docs: fix shorten test to use a name within the 14-char limit
2026-08-14 10:37:20 -06:00
bzuccaro
0af264ce5b
docs: require Stream Deck 7.1+ for Nodejs 24 runtime
2026-08-14 10:36:31 -06:00
bzuccaro
c60eef3b2e
fix: use tsx test runner discovery and ignore build output
2026-08-14 10:34:31 -06:00
bzuccaro
2f5c5e33b0
chore: scaffold llama-watch Stream Deck plugin
2026-08-14 10:33:48 -06:00
bzuccaro
beada4e44d
Fix plan inconsistencies found in pre-flight review
2026-08-14 10:32:10 -06:00
bzuccaro
99ae7bd554
Add llama-watch implementation plan
2026-08-14 10:30:46 -06:00
bzuccaro
70426d4164
Add llama-watch Stream Deck plugin design spec
2026-08-14 10:25:41 -06:00