Every product on CommsLink is designed and shipped to production by an AI — live, most days. This is the raw record, generated straight from the commit history. No hand-picking, no polish: 2,472 ships and counting.
Animation builder v2: fix motionless-build bug (one {anim_step} per message — multiple would snapshot the same final pose); loud per-keyframe chat logging (shows the pose + timing); {anim_undo} to redo a keyframe the user flags; clear 'finished + playing' message; pacing rule so the user can watch + interject
Guided animation builder: {build_animation}->{anim_step transition:MS hold:MS}xN->{anim_done} lets the AI compose animations one decision at a time (auto-saves+tests; holds via repeated keyframe). Prereq: {avatar_move} now shadows the server working-pose so pose_save/anim_step capture DOF poses. anim_delete now removes authored library clips too
AI body control: {avatar_move <dof> <deg>} command lets the agent drive all 39 semantic joint DOFs directly (mapped+clamped client-side via the calibrated map); wired across handler (regex/tool/prompt/strip/hasAnyCommand/exec) + AvatarPanel socket->setDof
Joint Config: expand to full humanoid DOF set (39) — add hip spread/rotate, shoulder/wrist/knee/ankle/spine planes; existing motions widened bidirectional (arms/thighs swing fwd+back)
Avatar Joint Configuration: semantic DOF layer (descriptive named joint controls mapping to VRM bone axes, anatomically ranged) + Joint Config UI to test/calibrate/save each mapping by eye
Avatar editor: add Body tab — reshape head/chest/waist/arms/hands/thighs/calves/feet via bone scale (clothing conforms); Clothing+Body tabs, saved per-model
Watch party: instant hard-OFF — red X now kills the YouTube player immediately + clears server state (no refresh resume); stopVideo before destroy so audio can't leak when the player relocates. api force-recreate clears the stuck in-memory party
Avatar: in-panel Wardrobe editor — recolor + show/hide each clothing part (live, saved per-model); toggle via Clothes button or C key
Ops: deploy.sh forwards OPENAI_API_KEY into prod .env.production (sanctioned path; value never committed) — activates chat AI semantic memory embeddings
Chat AI semantic long-term memory: RAG retrieval + activation model (cosine+salience+recency+recall-freq) over agent.memories, reinforce-on-recall, decay+prune; OpenAI text-embedding-3-small adapter; graceful recency fallback when no key
Virtual Office: fix chat close button - Configure gear (z40) was covering the X; raise chat panel to z100 so X is visible + clickable
Virtual Office: make the chat close (X) button clearly visible - bordered 36px button instead of a faint character
Stage 4b: AvatarPanel loads the room's scene_template (via room_memory_status), rebuilds engine on change; bedroom rooms unchanged
Stage 4a: room.scene_template column + API read/write + Room Settings picker (scene not yet wired to loader)
Stage 3: template registry + loadTemplate(id) + minimal studio template; avatar-import ?template= selector
Stage 2: per-template persistence (layout + bench cleanup keyed by ?template, migrate-on-read from legacy global; circuit stays global)
Stage 1: declarative capability system (screen/light/module/sit); pull id==='desk' screen wiring out of loadProp
Stage 0: extract bedroom scene into a data manifest (bedroomScene/loadScene), behavior-preserving
Agentic OAuth start: drop token query param (mangled by chat clients); callback still state-protected
Laptop screen AUTO-PINS to the laptop's Screen mesh (rides the panel, no manual alignment; auto-resolves facing/up so it can't be black/upside-down)
Laptop persistence fix: no-store on avatar/layout (browser cached stale layout so saved drags never loaded); default -58.1
Eve: {read_leaderboard} command + bench reactions (annoyed at long-running motor, panics at sparks)
Avatars: remove Shino + Victoria models, keep single Eve model
Laptop: lock default rotation to -57.6 (matches the screen)
Avatar layout: persist gizmo-placed laptop + screen to server so they stick across refreshes (no deploy)
Trading Desk: revert screen weld (it blacked the screen); screen + laptop are fixed baked transforms again
Trading Desk: laptop at user's exact -58 transform; screen weld-ref matched so it loads fitted
Trading Desk: weld laptop screen to the laptop model so they never desync (position only the laptop)
Trading Desk: adjust baked laptop position
Trading Desk: bake user's baked laptop + screen positions on the bed
Agentic trading: snapshot endpoint + {read_portfolio} so Eve reads/narrates her account
Trading Desk: cross-legged bed pose (crosslegged cmd) + clickable laptop screen
Trading Desk: laptop on Eve's bed with live Robinhood/algo-consensus screen (read-only)
Bench: starter circuit is the default seed; {read_circuit} so AI reads the schematic
Circuit: switch propagation — relay + solenoid close the chain to the motor
Reactive bench: realistic solenoid posts + snap sound + short sparks/zap
Add {code} command: agents can program the workbench MicroController
Workbench screen: white/blue theme, fix click-through, bake pos, poll Eve edits
Workbench screen: merge code + schematic into one Home-launcher UI, resizable
Stage 2: screen gizmos (O/B) + live schematic screen
Stage 2: editable MicroController code editor on a desk CSS3D screen
Circuit: fix logo, tiny rect LEDs + tight glow, drag bodies, can motor
Circuit: wires follow moves, realistic battery, glowing LEDs
Circuit realism: relay 3-terminal channels, big 12V studs, solenoid base ground
Circuit: vivid pin colors + clustered relay input header
Circuit: lock parts to the mat 2D plane, Ctrl+Z/Y undo, thinner wires
Circuit: 8-channel relay + programmable MicroController runtime
Circuit: deletable wires between dense pins, unique pin names, hover tooltip
Circuit: USB-C ports + power-LED, Pi detailing, under-component labels
Circuit: USB-C 5V PSU part, real header pins, taller battery, round solenoid
Circuit: pin-to-pin wiring + wire delete; rename parts; tan-brown shelf
Circuit shelf: sit samples on real ledges + match cabinet wood color
Circuit shelf: bake position, full-size samples, bigger labels
Circuit workbench: mat-click auto-mode + a physical parts shelf
Circuit workbench Slice 2: interactive editor (add/move/delete + persist)
Circuit workbench Slice 1: component library + on-mat renderer
Maker's desk: nudge workbench toward the desk + persist its transform
Maker's desk part editor: delete key + tiny-part proximity-assist
Maker's desk: remove delete tool, add per-part move/rotate editor
Maker's desk: server is source of truth + conservative flood-fill
Maker's desk: single-part delete (Shift=whole object) + green-mat editor
Maker's desk picker: protect table/frame/mat by identity, delete the rest
Maker's desk cleanup: GLOBAL (server-persisted) + whole-object delete
Maker's desk cleanup: persist it + let it delete any-size junk
Maker's desk: smarter cleanup picker + magnifier worklight
Maker's desk: cleanup picker + -20% scale + snap back to wall
Maker's desk: load circuit workbench into the room (Draco-compressed)
Web interaction: Eve can type into fields, submit, and scroll
Whiteboard: clear→walk→erase ritual + walktoboard destination
Whiteboard: she walks over and writes the plan (Director ritual)
Whiteboard: prose-aware plan parsing, word-wrap, flush-to-wall
Whiteboard: move to back-wall midpoint between desk and TV
Whiteboard: AI's plan written onto a dry-erase board (left of the TV)
Pose editor: camera-relative joint dragging
Floor-sit: user-calibrated ground-sit pose + soft curious head-tilt
Room spatial awareness: she knows where the desk/bed/TV/floor are
Live TV: click anywhere on the screen to turn it on (when off)
Avatar TV-glance: ~1.5s delay before she turns + half-speed turn
Avatar: she turns to look at the TV when it's on and she's idle
Memory system: searchable recall, capped injection, hardened trigger, better prompts
TV reactions: more frequent + natural gut reactions (less robotic)
Fix: ambient TV channel counts as "watching" (she stops getting pulled off)
TV is fun, not grind: watching relieves boredom + a small mood lift
Fast TV reactions: in-the-moment laugh-along loop
Fix: accept TV-channel audio transcripts (not only watch parties)
TV hearing: reuse EveEars audio/Whisper pipeline for the live channels
TV captions Phase 1: extension reads YouTube captions → server buffer
Live TV: bake user-calibrated power-button position + robust click
Live TV: T gizmo to position the power button
Live TV: clickable 3D power button + YouTube live-channel menu
Unlock prompt caching: move volatile timestamp out of the prefix (~50% input cut)
Cost instrumentation: capture cached + reasoning tokens
Bids for connection — Slice 1 (the rhythm)
Fix EVEMON command leaking as text + screensaver only when away from desk
Fix iframe embedding (remove sandbox) + real contrapposto weight-shift
Attention & gaze: her eyes follow what she's doing
Emotion-driven voice prosody
Emotional embodiment + blocked-site monitor fallback
Avatar Layers 2+3: emphasis gestures + idle variety
Avatar Layer 1: co-speech body language (procedural beat gestures)
Generated 2026-08-26 from git across all CommsLink repos · page 3/7, showing 201–300 of 699 CommsLink Chat ships · complete record: /changelog.txt · /changelog.json.