Releases: Platform-OS/suboculo
v0.9.0-beta.1 - Internal Beta
v0.9.0-beta.1 - Internal Beta
This release finalizes a major Task Runs refactor and fixes key reliability/UX issues around after-action reports and tab refresh stability.
Highlights
- Refactored Task Runs UI into focused components:
- filters, list/detail workspace, KPI summary, KPI compare, reliability review, reliability trends
- Extracted Task Runs orchestration logic into dedicated modules:
- URL state, options derivation, filter transitions, action handlers, and data loading
- Fixed AAR behavior:
- opening a task run no longer auto-generates/persists AARs
- stored AAR retrieval now returns previously persisted reports (including stale ones) instead of hiding them
- removed noisy 404s for missing stored reports
- Reduced Task Runs tab flicker/jitter:
- removed duplicate refresh triggers
- switched to deterministic refresh-key diffing
- stabilized panel rendering during updates with stale-while-refresh behavior and layout guards
Why this matters
- Better maintainability: Task Runs is no longer a monolithic UI/logic block.
- Better correctness: AAR generation semantics now match user intent.
- Better UX: fewer visual glitches and more stable refresh behavior.
Validation
- Frontend build passes
- Task Runs UI smoke passes
- Task Runs URL-state smoke passes
- Backend smoke passes
v0.8.0-beta.1 - Internal Beta
v0.8.0-beta.1 — Internal Beta
This release operationalizes Weekly Review workflows and adds auditable review acknowledgements.
Highlights
- Weekly Review UX in Task Runs
- Expanded Reliability Review panel with actionable sections:
- KPI snapshot
- anomaly flags
- latest trend deltas
- latest failure-mode mix
- labeling backlog
- top failing runs
- Added export actions:
- Copy markdown
- Download markdown
- Added optional Last 4 weeks compact view (week-over-week snapshots)
- Expanded Reliability Review panel with actionable sections:
- Review acknowledgement audit trail
- New persistent acknowledgements model:
- review_acknowledgements table
- New API:
- POST /api/reliability/review/acknowledge
- GET /api/reliability/review/acknowledgements
- Reliability review payload now includes acknowledgement status/metadata for the selected period + runner.
- UI supports:
- reviewer + optional notes
- Mark reviewed
- reviewed badge with reviewer/time
- New persistent acknowledgements model:
- Review period consistency
- Reliability review now returns explicit period bounds (from/to) for default windows, improving downstream UX and acknowledgements matching.
Quality and validation
- Added smoke assertions for acknowledgement lifecycle:
- unacknowledged default
- acknowledge success
- acknowledgement listing
- negative path: missing reviewer rejected
- Verified:
- backend syntax checks
- backend smoke suite
- frontend build
- existing UI regression smokes
Why this release matters
Suboculo now supports a lightweight, repeatable weekly reliability ritual:
review metrics → export/share summary → mark reviewed with auditable metadata,
without turning the system into runtime policy enforcement.
v0.7.0-beta.1 - Internal Beta
v0.7.0-beta.1 — Internal Beta
This release completes the KPI Compare fast-follow slice and hardens shareable analysis workflows in Task Runs.
Highlights
- KPI Compare usability upgrade
- Preset windows (7/14/30) and custom A/B date ranges
- Explicit Period A / Period B range labels with run counts
- Delta interpretation with metric-aware direction (Improving / Degrading / No change)
- Guardrail-aware compare
- Period-level sample sufficiency badges for:
- canonical outcome sample
- known-cost-success sample
- Direction cells now show Insufficient sample when interpretation is not statistically trustworthy
- Period-level sample sufficiency badges for:
- Shareable compare links
- New Copy share link action in KPI Compare
- URL now pins all compare-affecting state:
- Task Runs filters
- compare mode/preset/custom ranges
- source context (derived_attempt)
- Deep-link reliability fixes
- Shared links now open directly on Task Runs (tab=task-runs)
- Fixed tab key mismatch (taskruns vs task-runs)
- Added legacy compatibility for old shared links
- Fixed startup URL hydration/sync race that previously redirected to Events
Test and quality updates
- Added frontend regression smoke for URL-tab/share-link behavior:
- smoke:ui-taskruns-url
- Existing Task Runs regression smoke retained:
- smoke:ui-taskruns
- Frontend build passes.
Documentation
- README updated with KPI Compare fast-follow capabilities
- Added release notes detail in:
- docs/release-notes-kpi-compare-fast-follow.md
v0.6.0-beta.1 — Internal Beta
v0.6.0-beta.1 — Internal Beta
This release hardens reliability metrics correctness and makes After-Action Reports (AARs) durable.
Highlights
-
Corrected KPI cost semantics:
- Suboculo now separates unknown cost from known zero cost.
- Added
estimated_cost_knownin task-run derivation. cost_per_successnow uses only successful runs with known cost.- Cost aggregates and guardrails are aligned to known-cost sample size.
-
Durable After-Action Reports:
- AARs are now persisted in backend storage (
task_run_reports), not just transient UI state. - AAR endpoint uses read-through caching:
- returns stored report when fresh
- regenerates and stores when missing/stale
- Outcome updates invalidate stale reports for affected runs.
- AARs are now persisted in backend storage (
-
Task Runs UX reliability:
- Task Run detail now auto-loads persisted AAR on open.
- Debounced Task Runs reload behavior remains in place for stable filtering.
API/Behavior Notes
- Reliability KPI outputs now include known-cost counters used for cost metrics.
/api/reliability/kpi-definitionsreflects the updated cost formula and null conditions./api/task-runs/:id/after-action-reportnow returns cache metadata indicating generated vs stored response path.
Validation
- Backend smoke suite updated and passing.
- Frontend build and Task Runs regression smoke checks passing.
Why this release matters
This release fixes a subtle but important KPI integrity issue: unknown-cost runs could previously bias cost metrics downward. It also turns AARs into persistent artifacts that survive browser reloads and remain consistent across sessions.
v0.5.0-beta.1 - Internal Beta
v0.5.0-beta.1 - Internal Beta
This release turns Suboculo’s reliability data into an operational review workflow for teams.
Highlights
- Added configurable KPI thresholds (local-first):
- threshold targets loaded from .suboculo/thresholds.json (or SUBOCULO_THRESHOLDS_PATH)
- anomaly flags now include target breaches (below_target_, above_target_)
- Added Reliability Review API:
- GET /api/reliability/review
- returns period summary with KPI snapshot, anomalies, trend deltas, failure-mode summary, labeling backlog, top failing runs
- includes pre-rendered markdown for sharing/review
- Added MCP reliability review tool:
- suboculo_get_reliability_review
- enables CLI-native weekly/period review workflows
- Added Task Runs “Reliability Review” card in frontend:
- executive summary above KPI detail cards
- anomaly badges
- clickable labeling backlog (opens needs-labeling queue)
- top failing runs with click-to-open detail
- markdown copy action
Install + docs improvements
- Installers now copy .suboculo/thresholds.example.json into target projects.
- README/backend docs updated for thresholds configuration, review endpoint, and MCP workflow usage.
Validation
- Backend smoke suite passes.
- Frontend production build passes.
This beta is focused on making reliability monitoring actionable in day-to-day team operations.
v0.4.0-beta.1 - Internal Beta
v0.4.0-beta.1 - Internal Beta
This release adds post-run reliability analysis as a first-class workflow in both UI and MCP/CLI.
Highlights
- Added After-Action Reports (AAR) for task runs:
- backend endpoint: GET /api/task-runs/:id/after-action-report
- deterministic report sections: what happened, variance vs expected, risks, remediation
- explicit insufficient_evidence state when canonical outcome is missing
- markdown export payload for sharing
- Added Task Run AAR UI:
- generate report on demand
- copy markdown directly from Task Run detail view
- report state resets after outcome changes to prevent stale summaries
- Expanded MCP reliability coverage with new tools:
- suboculo_get_reliability_kpis
- suboculo_get_reliability_trends
- suboculo_get_failure_mode_trends
- suboculo_get_task_run_after_action_report
- suboculo_record_task_run_outcome
- Completed CLI workflow docs for reliability operations:
- added prompt examples for Claude Code and OpenCode usage
- added repeatable MCP Reliability Workflows (triage, comparison, postmortem)
Why this matters
Suboculo now supports a full loop:
- derive task runs,
- label outcomes,
- track KPI/trend signals,
- generate actionable after-action reports,
- run the same analysis from CLI via MCP.
Validation
- node --check backend/server.js
- node --check backend/mcp-analytics-server.mjs
- npm --prefix backend run smoke
- npm --prefix svelte-app run build
All checks pass for this release scope.
v0.3.0-beta.1 - Internal Beta
v0.3.0-beta.1 - Internal Beta
This release advances Suboculo from event capture into practical reliability analysis for agent work.
Highlights
- Added first-class reliability workflow around task runs and outcomes.
- Expanded KPI coverage with:
- aggregate reliability metrics
- runner-level KPI comparison
- time-bucketed trends
- trend insights with sample-confidence guardrails
- failure-mode trends over time
- Completed provenance enrichment in task-run derivation:
- git revision
- normalized model attribution
- runner/runtime version
- Added bulk outcome operations for faster labeling:
- needs-labeling queue
- multi-select apply in Task Runs UI
- batch outcome API
Reliability and UX improvements
- Improved event normalization and ordering behavior.
- Strengthened OpenCode session lifecycle capture and metadata handling.
- Reduced noisy/redundant OpenCode events in stored telemetry.
- Added/expanded smoke coverage for reliability endpoints and derived views.
- Updated backend API docs for new reliability and outcome endpoints.
Release intent
This is an internal beta focused on validating ARE workflows with real team usage: labeling quality, KPI interpretability, and cross-runner operational signal.
v0.2.0-beta.2 - Internal Beta
Suboculo v0.2.0-beta.2
Documentation and stabilization follow-up to v0.2.0-beta.1.
What’s new
- Synced project docs with current implementation:
- attempt-based task run semantics
- Events-tab attempt filtering
- Task Runs + outcome workflow
- backend API coverage for task runs/outcomes/benchmarks
- Added/clarified operational guidance:
- derive task runs after upgrades
- optional legacy run cleanup command (cleanup:legacy-runs)
- Minor reliability hardening for attempt boundary derivation:
- malformed session.start without sessionID does not create attempt splits
Why this release
v0.2.0-beta.1 introduced major Phase 2 behavior changes. This release aligns docs and operational instructions so teams can adopt the beta without ambiguity.
Validation status
- Backend smoke suite: passing
- Frontend production build: passing
- No intentional breaking changes vs v0.2.0-beta.1; this is a documentation/stabilization patch release.
v0.2.0-beta.1 - Internal Beta
This release advances Suboculo from event logging toward task-level reliability analysis for internal beta usage.
Highlights
- Attempt-based task runs
- Task runs are now derived as attempts, not one perpetual run per root session.
- Attempt boundaries are inferred from:
- session.start
- post-session.end continuation
- inactivity gap (45 minutes)
- Active runs without explicit session.end remain running (no false completed).
- Outcome semantics enforcement
- Structured outcome taxonomy is now enforced on write:
- evaluation_type
- outcome_label
- failure_mode
- failure_subtype
- Backend rejects invalid or inconsistent outcome payloads.
- New taxonomy metadata endpoint supports controlled UI forms.
- Structured outcome taxonomy is now enforced on write:
- Outcome analytics
- Added summary API for task run outcomes with aggregate breakdowns by:
- outcome label
- failure mode
- failure subtype
- evaluation type
- Added filterable Task Runs views for canonical outcome and intervention-related analysis.
- Added summary API for task run outcomes with aggregate breakdowns by:
- Attempt-aware event exploration
- Events API now supports filtering by attempt key.
- Events UI includes an Attempt filter and displays attempt context per event.
Reliability/Data quality improvements
- Claude Code session.start capture now prioritizes hook payload session_id over environment-only fallback, reducing null session IDs.
- Derivation logic ignores malformed session.start without concrete session identity for attempt boundary splitting.
Operational additions
- Added optional cleanup utility for legacy run model rows:
- npm --prefix backend run cleanup:legacy-runs
- removes task_runs with source='derived_session' after migration to attempt model.
Validation status
- Backend smoke suite: passing
- Frontend production build: passing
- Syntax checks: passing
Compatibility note
- Existing historical data is preserved.
- Attempt model is now the canonical source for new task-run analysis (source='derived_attempt').
- Legacy rows may remain until optional cleanup is run.
v0.1.0-beta.1 - Internal Beta
Suboculo internal beta release.
Suboculo is a local per-project monitoring and analysis tool for AI coding agents. It captures agent activity into a project-local SQLite database, serves a web UI for inspection, and exposes MCP analytics tools for CLI workflows.
Included in this beta:
- Claude Code integration via hooks and direct SQLite capture
- OpenCode integration via plugin and direct SQLite capture
- Real-time web UI with filtering, tagging, notes, saved analyses, and selection-to-CLI bridge
- MCP analytics server for querying sessions, events, and selections
- Per-project installation with custom port support
Supported workflows:
- inspect tool usage and agent/subagent activity
- analyze selected traces in Claude and save results back to the UI
- compare Claude Code and OpenCode activity in the same project database
- run Suboculo locally without requiring a central service
Install:
./install-suboculo.sh /path/to/project./install-suboculo-opencode.sh /path/to/project
Documentation:
README.mdINSTALL.md
Notes:
- this is an internal beta / team preview release
- intended for local per-project use
- rough edges are still possible; report issues as you find them