dark-mechanicus-indicator: slow cadence to 1s pulse / 10s quote dwell

Before: 100ms/frame × 20 frames = 400ms pulse, 2s quote dwell.
After:  250ms/frame × 40 frames = 1s pulse, 10s quote dwell.

Pulse still cycles dim → normal → bright → normal (4 shades) but each
shade now holds for 250ms, making the pulse slower and the glyph more
legible. Quotes now stay long enough to read comfortably.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-23 22:26:18 +02:00
parent 6e89d1d123
commit c5eeba1e13
+7 -6
View File
@@ -3,11 +3,10 @@
* pulsing ⚙ cog + a rotating dark-mechanicum quote.
*
* Mechanics:
* - Pulse: 4-frame shade cycle (dim → normal → bright → normal) at 100ms
* per frame → ~400ms heartbeat. The ⚙ glyph never moves; its color
* pulses instead.
* - Pulse: 4-frame shade cycle (dim → normal → bright → normal) at 250ms
* per frame → 1s heartbeat. The ⚙ glyph never moves; its color pulses.
* - Quote: 45 lines (15 pious / 15 dark / 15 operational). Each quote
* dwells for 5 pulse cycles (20 frames = 2s) before switching.
* dwells for 10 pulse cycles (40 frames = 10s) before switching.
* - Order: shuffled on every session_start AND turn_start, so each new
* assistant response draws from a fresh random order.
*
@@ -97,8 +96,10 @@ const RESET_FG = "\x1b[39m";
const PULSE_SHADES = [GOLD_DIM, GOLD_NORMAL, GOLD_BRIGHT, GOLD_NORMAL];
const COG_FRAMES_PER_QUOTE = 20; // 2s dwell at 100ms/frame
const FRAME_INTERVAL_MS = 100;
// Interval 250ms × 4 pulse shades = 1s per complete pulse cycle.
// 40 frames × 250ms = 10s dwell per quote before it switches.
const FRAME_INTERVAL_MS = 250;
const COG_FRAMES_PER_QUOTE = 40;
function cogFrame(pulseIdx: number): string {
return `${PULSE_SHADES[pulseIdx]!}${COG}${RESET_FG}`;