Repository navigation
Tags
Tags
feat: v0.9.0 — First 5 Minutes Magic (#116) * feat: add node-fullstack and python-api templates, custom template discovery Two new built-in templates: node-fullstack (4-agent frontend/backend split, detects package.json) and python-api (3-agent, detects pyproject.toml/requirements.txt). Custom template discovery from ~/.config/tutti/templates/ with validation and warning on malformed files. Unified scoring via score_template_detection(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: interactive tt init with team preview, customize mode, tt template list Progressive disclosure bootstrap: auto-detect repo → show team preview table → [L]aunch / [C]ustomize / [Q]uit. Customize mode lets users swap runtimes, remove agents, and change project name with live preview re-rendering. tt template list shows all built-in and custom templates with detection rules. InputSource trait enables full test coverage of interactive flows. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: run telemetry emission after workflow completion Emits step-level timing and pass/fail data to .tutti/state/run-telemetry.jsonl after each tt run completes. Includes template_id/version attribution. Duration clamped to max(0.0) to handle clock skew. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump version and changelog (v0.9.0) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: format + suppress dead_code on ConfigAlreadyExists variant Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: remove accidentally committed dirs * fix: address 4 CodeRabbit review comments on PR #116 1. init: Quit option now exits cleanly without writing files; EOF/read errors map to Quit (abort) instead of the first option. Added Save-only option [S] for writing config without launching. 2. init: Removing an agent now also removes dangling workflow steps that reference it, via new remove_workflow_steps_for_agent helper. 3. state: Changed append_run_telemetry from pub to pub(crate) since it is best-effort telemetry that swallows errors intentionally. 4. templates/node-fullstack: Added ensure_running and implement steps for the frontend agent so it actually participates in the workflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address CodeRabbit round 2 on PR #116 - Stop agent block removal at any table header (not just [[) - Make score_template_detection and discover_custom_templates pub(crate) - Reject duplicate custom template names during discovery Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: dashboard usage stats no longer flash and disappear (#112) (#115) The /focus endpoint now omits `usage` from the response unless ?usage=1 is explicitly requested. Previously, the fast 2s terminal poll returned usage: { input_tokens: 0, ... } which the client rendered as zeros, overwriting real values from the slower 30s usage poll. Server-side: conditionally include usage in focus response Client-side: guard renderFocusView from writing empty usage (defense-in-depth) Closes #112 Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs: update project documentation for v0.8.0 (#114) - README: update project status to v0.8.0, add template packs and artifact pipeline to quick start and features sections, show role mapping in config example, add tt init --template examples - CLAUDE.md: add template, automation, and permissions modules to architecture - CHANGELOG: add v0.8.0 entry with template packs, role mapping, artifact polling, and permission fixes - Cargo.toml: bump version to 0.8.0 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
feat: artifact pipeline — typed artifact flow between workflow stages… … (v0.7.0) (#111) * feat: artifact pipeline — glob-based artifact capture and injection for prompt steps Add artifact_glob and artifact_name fields to Prompt workflow steps, enabling typed artifact flow between pipeline stages. After a skill completes, tutti globs for new files, captures the newest, and registers it as a step output available to downstream steps via {{output.step_id.path}} templates. Key capabilities: - Pre-step snapshot prevents race conditions with concurrent runs - inject_files supports {{output.step_id.path}} template expansion - Variable interpolation: {slug}, {workspace}, {agent}, ~ in glob patterns - Config validation: requires wait_for_idle, valid artifact_name chars, paired fields - gstack-slug integration for {slug} resolution - 15 new tests covering all codepaths Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: dry-run display and validation for artifact pipeline Show artifact_glob and artifact_name in dry-run table and JSON output. Validate gstack-slug availability at dry-run time when {slug} is used in artifact_glob patterns. * feat: dashboard artifact edge labels on flow connectors Show artifact names as labels on pipeline flow connectors during active workflow runs. Labels appear above the connector line between stages. * chore: bump version and changelog (v0.7.0) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: document artifact pipeline in README Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address CodeRabbit review comments on PR #111 - Fix terminology in CHANGELOG (skill -> prompt step) and template key (step_id -> artifact_name) - Skip non-running runs in dashboard artifact label derivation - Fix CSS variable typo (--mono -> --font-mono) - Align README artifact docs terminology with changelog - Run artifact capture before every prompt success early exit - Expose raw artifact path via output.<name>.path instead of JSON path - Refactor resolve_gstack_slug() to accept injectable home dir param, removing unsafe env mutation from tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Feat/phase 2 agent focus (#107) * feat: Phase 2a — Agent Focus Mode with live terminal, usage, and diff The Factorio zoom-in: click a stage card on the factory floor and the dashboard transitions to a full-screen Agent Focus Mode showing: - Live terminal output (polled every 2s via single /focus endpoint) - Token usage stats (input, output, cache read/write) - Context % with color-coded fill bar (green/amber/red) - Git diff of agent's worktree changes (syntax highlighted) - Workflow progress (step X/Y) - Prompt input bar to send instructions to the agent - "Agent not running — Start Agent" CTA when agent is stopped Backend: single GET /v1/agents/{ws}/{agent}/focus endpoint combines terminal capture, usage scanning, diff resolution, and context % extraction in one response. Eliminates polling race conditions. Design: follows DESIGN.md tokens throughout. Smart auto-scroll on terminal (stays put if user scrolled up). Mobile layout with swipeable tabs (<768px). Keyboard: Escape returns to factory floor. Also fixes dispatch panel json.status bug (was checking json.status instead of json.ok). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: increase implement_code startup_grace to 120s The default 30s grace period was too short — the implementer agent was being marked idle before it had time to read the codebase and start writing code, causing premature "no commit" failures. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address 7 CodeRabbit review comments on PR #104 - Make stage cards keyboard-activatable (Enter/Space keydown handler) - Prevent overlapping focus polls from racing (focusPolling guard flag) - Check /up response status before marking as successful - Escape statRow values via escapeHtml to prevent innerHTML injection - Replace deprecated word-break: break-word with overflow-wrap: anywhere - Clamp lines query param to [1, 10000] before pane capture - Validate agent exists in workspace config before building focus data Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: instant focus mode render from cached health data Pre-populate agent name, status, and session from appState.agents on click instead of waiting for the first /focus poll. Reduces perceived latency from ~2s to near-instant. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * perf: split usage scan from focus endpoint — 11s → 35ms scan_workspace_usage() does expensive filesystem I/O (~11s on large projects). Move it to a separate slow poll (?usage=1, every 30s) so the main focus endpoint (terminal + diff + context) responds in ~35ms for instant terminal updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: update project documentation for v0.6.0 - README: dashboard section updated from "Planned" to "Built" with Agent Focus Mode details, roadmap checkboxes updated - CHANGELOG: added Unreleased section with Phase 2 features - DESIGN.md: added Agent Focus Mode design specifications - Cargo.toml: bumped version to 0.6.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: operator failure-debugging loop (closes #79) Documents the repeatable workflow from failed run to root cause: run inspection → step timeline → agent check → log analysis. Covers provider, policy, and tool failure patterns with concrete CLI examples. Links dashboard Focus Mode for visual debugging. Closes #79 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: remove accidentally committed dirs --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore(release): cut v0.4.0 First fully unattended dogfood milestone — sdlc-auto --strict completes all 23 steps end-to-end without operator intervention. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PreviousNext