WIP experiment with 95% vibe coding
tiny-workshop docs ROADMAP.md
7.9 kB
Markdown
at main

Tiny Workshop Development Roadmap #

Last Updated: 2026-01-11 Status: Active Development

This document outlines the development phases for Tiny Workshop, providing clarity on what's implemented, what's next, and future plans.


Current Phase: MVP ✅ (COMPLETE) #

Goal: Basic chat interface working end-to-end with Claude Agent SDK

Completed ✅ #

Feature Status Notes
IPC Protocol ✅ Done JSON-RPC over stdin/stdout
Backend Process Management ✅ Done Spawning, lifecycle, error handling
Chat UI (Fyrox-UI) ✅ Done Streaming messages, input field
OAuth Authentication ✅ Done PKCE flow, keychain integration
Credential Manager ✅ Done Cross-platform keychain (Windows, macOS, Linux)
Debug Server ✅ Done HTTP API for automated testing
Animation State Machine ✅ Done Color-coded placeholder cube
Cross-Platform Backend Path ✅ Done Platform detection for backend executable
Linux Keychain Fallback ✅ Done Config file fallback when Secret Service unavailable
Basic Error Recovery ✅ Done Auto-restart on backend crash (up to 3 attempts)
SDK Integration ✅ Done OAuth proxy, multi-turn via InputGenerator pattern
Multi-Turn Conversations ✅ Done Long-running query with async input generator

MVP Definition of Done ✅ #

MVP Status: COMPLETE 🎉


Phase 2: Room System ✅ (COMPLETE) #

Goal: Agent can interact with the 3D environment

Completed ✅ #

Feature Status Notes
All 5 surfaces ✅ Done desk (6), windowside_table (4), mantelpiece (3), bookshelf (8), lectern (2)
create_note MCP tool ✅ Done Via SDK in-process MCP server
remove_note MCP tool ✅ Done Removes notes by title
move_note MCP tool ✅ Done Move notes between surfaces with rollback
examine tool ✅ Done Get details about a specific note
look_around MCP tool ✅ Done Returns room description with note colors
clear_room tool ✅ Done Clears all notes from room
Room persistence ✅ Done State saves to room.json
Isometric camera ✅ Done 45° isometric view of room
Surface placeholder visuals ✅ Done Colored meshes for each surface
Sticky note rendering ✅ Done Colored cubes positioned on surfaces
Visual sync ✅ Done Room visuals update after actions
Image stacks ✅ Done Full texture rendering with LRU cache (50 images/50MB)
Text on notes ✅ Done Title + content preview rendered to 512x512 PNG textures

Deferred to Phase 4 (requires 3D assets) #

Feature Reason
Real 3D assets Proper furniture models and note meshes (placeholder cubes for now)

Dependencies #


Phase 3: Persistence ✅ (COMPLETE) #

Goal: State survives across sessions and crashes

Completed ✅ #

Feature Status Notes
Room State ✅ Done room.json with surfaces and interactables
Atomic Writes ✅ Done Temp file + rename pattern
Multi-Instance Safety ✅ Done File locking via fs2 crate
Schema Versioning ✅ Done Version field with migration support
Session Logs ✅ Done JSONL append-only with SessionLogger
Session Picker UI ✅ Done session_picker.rs with resume/new options
Session Resumption ✅ Done Load history, extract SDK session ID, resume via backend
Compaction Handling ✅ Done Tracks new SDK session ID after compaction
Project Metadata ✅ Done project.json with name, timestamps
Session Log Size Limits ✅ Done 1000 entries or 10MB limit with should_rotate() API

Dependencies #


Phase 4: Character & Animation #

Goal: Replace placeholder cube with animated character

Planned Features #

Feature Description
Character Model Low-poly humanoid (~5K triangles)
Skeletal Animation Idle, working, speaking, tool animations
Blend Shapes Facial expressions (jaw, brow, smile, blink)
Animation Events Fyrox animation machine integration
Tool-Specific Animations Different poses for different tool categories
Real Room Assets Proper furniture meshes (desk, bookshelf, etc.)

Asset Requirements #

  • Character mesh (~5K triangles)
  • Humanoid skeleton (~50 bones)
  • 13 animation clips (see animation-system.md)
  • Facial blend shapes

Dependencies #


Phase 5: Polish & UX #

Goal: Refined user experience

Completed Features #

Feature Notes
Settings Dialog Graphics (quality preset), Audio (volume/enable), Auth (API key), Advanced tabs. Settings apply at startup and when saved.

Planned Features #

Feature Description
Checkpoint Restoration Double-Esc to restore past state
Session Management Ctrl+N new session, session switching
Keyboard Shortcuts Full shortcut implementation
Sound Effects Audio feedback for actions
UI Polish Transitions, hover states, visual feedback

Dependencies #

  • Core systems stable (Phases 1-4)

Phase 6: Distribution #

Goal: Ready for public release

Planned Features #

Feature Description
Windows Installer MSI or NSIS installer
macOS App Bundle Signed .app bundle
Linux Packages AppImage, .deb, .rpm
Auto-Update In-app update mechanism
Crash Reporting Optional telemetry

Dependencies #

  • All core features complete and stable

Deferred / Future Ideas #

Features considered but not currently planned:

Feature Reason
WebAssembly Build Performance concerns, complexity
Mobile (Android/iOS) Touch UI redesign needed
Multiplayer Out of scope for v1
Custom Character Skins After core character works
Plugin System After architecture stabilizes

Known Issues Tracker #

Active issues are tracked in ISSUES.md.

Resolved:

  • Issue #2: ✅ Room state limits implemented
  • Issue #3: ✅ Migration snapshot tests implemented
  • Issue #4: ✅ Linux keychain fallback implemented
  • Issue #7: ✅ Image texture rendering (full-size images, no thumbnails needed)
  • Issue #8: ✅ Settings dialog implemented with engine application

Deferred:

  • Issue #1: Checkpoint restoration (Phase 5)
  • Issue #5: Protocol semantic versioning (v2.0)
  • Issue #6: Animation event callbacks (Phase 4)

How to Contribute #

  1. Check this roadmap to understand current priorities
  2. Review ISSUES.md for specific gaps
  3. Read relevant design docs in docs/design/
  4. See CONTRIBUTING.md for development setup

Version History #

Date Changes
2026-01-11 Phase 3 fully complete: session log size limits implemented (1000 entries / 10MB)
2026-01-11 Phase 2 fully complete: image stacks and text rendering done; Issue #7 resolved
2026-01-07 Moved SDK integration and multi-turn to complete (InputGenerator pattern implemented)
2026-01-06 Updated Phase 2 & 3 status to reflect implementation; removed duplicate sections
2026-01-05 Initial roadmap created