Skip to content

Releases: Postmodum37/ocwatch

v0.6.0

08 Mar 08:24

Choose a tag to compare

What's Changed

  • perf(client): reduce unnecessary re-renders and code-split GraphView by @Postmodum37 in #2
  • refactor: phase 1 cleanup — dead code, error handling, deps by @Postmodum37 in #4
  • refactor: phase 2 — structural cleanup by @Postmodum37 in #5

Full Changelog: v0.5.0...v0.6.0

v0.5.0

26 Feb 22:32

Choose a tag to compare

Full Changelog: v0.4.0...v0.5.0

v0.4.0 — Live Activity Graph & Edge Animations

08 Feb 20:41

Choose a tag to compare

What's Changed

  • feat(client): replace LiveActivity/AgentTree with force-directed graph view by @Postmodum37 in #1

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0 — Project-scoped polling & single-project view

08 Feb 12:08

Choose a tag to compare

What's New

Project-scoped polling

  • Poll data is now filtered by the selected project — sessions, messages, and plan progress are all scoped
  • Project auto-selection on startup: URL param → server --project flag → first project in list
  • --project <path> CLI flag threads through as default project via health endpoint

Single-project view

  • Removed "All Projects" view — dashboard always shows one project at a time
  • Simplified project dropdown (no more "All Projects" option at bottom)
  • Removed per-session project badges (unnecessary in single-project mode)

Bug fixes (from code review)

  • Fixed cross-project response race: Hooks now use combined sessionId+projectId scope key to detect stale responses during rapid project switching
  • Fixed test workflow regression: Removed bunfig.toml root that broke integration test discovery
  • Eliminated duplicate listAllSessions() call: resolveProjectDirectory now accepts pre-loaded sessions
  • Added project-scoped poll cache: Cache keyed by projectId instead of global-only — scoped requests now benefit from caching and deduplication
  • Session cleared on project switch: selectedSessionId resets when changing projects
  • Auto-selected project validated: Stale ?project= URL params no longer lock users into empty scope
  • Graceful directory-missing degradation: Shows sessions even when project directory is gone, only plan data is null

Tests

  • Added hook tests for projectId URL construction, scope key reset, and stale response rejection
  • Added server tests for scoped cache 304 responses and cache isolation across projects
  • Added SidebarPlanProgress, health route, and project resolver test suites

v0.2.1

07 Feb 15:09

Choose a tag to compare

Activity Stream Fixes & Code Quality

Bug Fixes

  • Animation jank: Removed index-based stagger delay that caused frame drops on large streams
  • Scroll scheduling: Replaced setTimeout(0) with requestAnimationFrame for smoother auto-scroll
  • New-item detection: Switched from length-based to ID-based tracking (fixes false positives on entry replacement)
  • Memory leak: Fixed seenIdsRef unbounded growth — now caps at 2000 and rebuilds
  • Render allocation: Fixed useRef initializer allocating a new Set on every render via lazy init pattern
  • Test coverage gap: Shared tests (src/shared/) were silently excluded from bun test — now included (307 tests, up from 216)

Improvements

  • Error pipeline: End-to-end error extraction from part files → PartMeta.errorToolCallSummary.errorBurstRow inline display
  • BurstRow redesign: Agent name label restored, latest action as primary text, tool breakdown dimmed, inline error count + preview
  • Type safety: Narrowed MilestoneEntry union (removed dead ToolCallActivity path), added isMilestone() type guard
  • Dead code cleanup: Removed unreachable tool-call milestone branches in MilestoneRow and AgentSwimlane
  • ES2023: Bumped lib target for Array.findLast() support

Tests

  • 307 server/shared tests passing
  • 176 client tests passing
  • 0 TypeScript errors

v0.2.0

07 Feb 13:23

Choose a tag to compare

Full Changelog: v0.1.1...v0.2.0