Skip to content

v0.2.0-beta.1 - Internal Beta

Choose a tag to compare

@rafal-k rafal-k released this 21 Mar 00:08
· 64 commits to main since this release
eb5ef75

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.
  • 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.
  • 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.