Ocean v0.14.1
Ocean v0.14.1
🚀 New features
- feat: integrate Antigravity CLI (agy) as alternative native agent
- feat: update work items and agent surfaces
- feat(work-items): ocean-relay sibling binary + serve entrypoint (Plan 5 task 9)
- feat(work-items): presence fan-out over the board WebSocket (Plan 5 task 8)
- feat(work-items): WS hub + ops broadcast (Plan 5 task 7)
- feat(work-items): relay HTTP handlers + axum router (Plan 5 task 6)
- feat(work-items): relay auth extractor (ServerIdentity) (Plan 5 task 5)
- feat(work-items): SQLite-backed RelayStore for the relay binary (Plan 5 task 4)
- feat(work-items): relay server module + RelayStore trait & in-memory impl (Plan 5 task 3)
- feat(work-items): RBAC actions for boards + items, agent-cannot-delete (Plan 5 task 1)
- feat(work-items): presence avatars + per-item viewing indicators (Plan 4)
- feat(work-items): activity-feed panel from the op-log (Plan 4)
- feat(work-items): assignee chip + org-member picker (Plan 4)
- feat(work-items): share/triage controls + sync indicator + auto-open (Plan 4)
- feat(work-items): store sync fields + board status + sync indicator (Plan 4)
- feat(work-items): manage live TeamSync engine + WS pump in Tauri state (Plan 4)
- feat(work-items): org_members on the BoardRelay seam + IPC (Plan 4)
- feat(work-items): activity-feed read from the op-log (Plan 4)
- feat(work-items): board-status read + team_work_items flag IPC (Plan 4)
- feat(work-items): surface visibility/assignee_id/author_id on WorkItem (Plan 4)
- feat(work-items): IPC for board link, share/accept, assign, policy (Plan 3)
- feat(work-items): visibility policy enforcement (Plan 3)
- feat(work-items): board resolve seam + SyncEngine::bind_board (Plan 3)
- feat(work-items): board policy + identity accessors + Plan-2 nits
- feat(work-items): board_key normalization from git remote (Plan 3)
- feat(work-items): integration test — two clients converge via mock relay
- feat(work-items): sync engine WS handler + flag-gated reconnect entrypoint
- feat(work-items): sync engine inbound apply + since-catch-up
- feat(work-items): sync engine outbox flush
- feat(work-items): DB bridge for inbound apply — ItemState<->row, cursor, flag
- feat(work-items): BoardRelay wire seam + mock relay test double
- feat(work-items): CRUD records ops into outbox for bound workspaces
- feat(work-items): DB methods for op outbox + board binding
- feat(work-items): migration v42 — sync columns + ops/boards tables
- feat(work-items): pure op-log sync core (HLC, Op, apply reducer)
- feat: add ocean_work_item_{create,list,update} MCP tools
- feat: add Work Items IDE view + registry wiring
- feat: add workItemStore (reactive list + CRUD actions)
- feat: add work_item_{create,list,update,delete} IPC commands
- feat: add work_items CRUD methods to Database
- feat: add work_items table + migration v41
- feat: add work_items domain module (WorkItem + enum validation)
- feat(redesign): release-readiness validation pass
- feat(canvas): promote review popup, scroll fix, editor-per-session, perf hardening
- feat(shell-v2): "please wait, editor is loading" state in file explorer
- feat(shell-v2): right-side tools rail (workflows / agents / skills / specs)
- feat(shell-v2): align bottom bar and run modes
- feat(shell-v2): session context menu on editor session tabs
- feat(shell-v2): context-menu parity, scrollback fixes, sessions-as-files
- feat(shell-v2): session + workspace context menus and closed-session resume in new shell
- feat(shell-v2): search dock panel — find/replace, grouped results, highlight
- feat(shell-v2): extensions dock panel — plugins + MCP servers, design-aligned
- feat(shell-v2): Run & Debug dock panel runs workflows (real workflow engine)
- feat(shell-v2): source control dock panel — staged/unstaged groups, commit box, real git
- feat(shell-v2): workspace switcher restyled to design + real worktrees
- feat(shell-v2): activity bar switches left dock panels (search/scm/sessions/agents/ext + run/problems placeholders)
- feat(shell-v2): editor activity bar + richer file tree (icons, PROJECT header, git markers)
- feat(shell-v2): Claude+Codex always in settings rail; enable toggles moved into their sections
- feat(shell-v2): settings Agents group adds Providers + Saved agents; Keybindings→Keymap
- feat(shell-v2): rewrite settings to prototype rail/card layout (real content preserved)
- feat(shell-v2): settings renders full-screen instead of a modal dialog
- feat(shell-v2): chat surface renders full-screen (fullscreen variant), overlay unchanged
- feat(shell-v2): full brand-v2 restyle of chat panel (message area + header)
- feat(shell-v2): restyle settings panel to brand-v2 chrome
- feat(shell-v2): backend IPC for worktrees, file search, and diagnostics
- feat(shell-v2): restyle LlmChatPanel to AIChat chrome + color audit
- feat(shell-v2): P4 WorkspaceSwitcher + CommandPalette agents/chips + FileTree dots
- feat(shell-v2): P3 tabbed BottomPanel + StatusBar SessionsChip
- feat(shell-v2): P2 agents-first sidebar (NEEDS/RUNNING/IDLE)
- feat(shell-v2): P1 AppShellV2 + TopBar + shellMode signal
- feat(shell-v2): P0 token bridge + shellV2/brandV2 flags + brand reset
- feat(phase5): search-and-replace across workspace (#15 part 2)
- feat(phase5): search match highlighting + char-based columns (#15 part 1, #21)
- feat(phase5): embeddable git-log/graph panel in Source Control view (#14)
- feat(phase5): promote 4 remaining overlays into IDE shell
- feat(phase4): deepen PR/spec/workflow views + merge token cleanup
- feat(phase4): 4e — conflict/workspace-health dock (palette-reachable)
- feat(phase4): 4f — onboarding as a palette-reachable overlay
- feat(phase4): 4b/4c/4d — PR, Spec, Workflow IDE views (main-slot)
- feat(phase4): 4a — palette registration + ideView main-slot mount + routing
- feat(phase4): 4a foundation (WIP) — IDE-view registry + design doc
- feat(canvas): integrate canvas mode in App + dock AiChatPanel in editor
- feat(aichat): AiChatPanel — agent inspector + PTY composer
- feat(canvas): board components — StatusPill, AgentCard, SpawnDialog, AgentCanvas
- feat(canvas): agentStatus normalizer + canvasStore
- feat(canvas): frontend foundation — layoutMode 'canvas', aiPanelVisible, Session.canvas_run_id, toggles
- feat(canvas): spawn_canvas_run + promote_canvas_session backend
- feat(canvas): migration v36 — canvas_run_id column + setter/group query
- feat(editor): EditorLayout + mount editor mode in App (Cmd+E toggle) — phase 2
- feat(editor): EditorTabs with dirty indicator + close — phase 2
- feat(editor): lazy FileTreeDock — phase 2
- feat(editor): CodeMirror view + token-bound theme — phase 2
- feat(editor): editorStore (tabs, dirty, load/save) — phase 2
- feat(editor): add list_directory IPC command — phase 2
- feat(editor): add layoutMode setting (terminal|editor) — phase 2
- feat(design): add .ocean-* helper classes (redesign phase 1)
- feat(design): add complete token scales + contract test (redesign phase 1)
🐛 Bug fixes
- fix(db): update backstop test to also remove v44 migration marker
- fix(settings): make Antigravity a permanent tab and fix broken test button
- fix(antigravity): address CodeRabbit re-review — share prompt guard, canonicalize exec path
- fix(antigravity): address CodeRabbit review (2/2) — prompt limit, bare-token, exec identity
- fix(antigravity): address CodeRabbit review (1/2) — basename match, badge fallback, docs
- fix(terminal): address CodeRabbit review — UTF-8 streaming, capture ordering, test race
- fix(shell-v2): address CodeRabbit review — propagate DB error + index canvas_run_id
- fix(shell-v2): push remaining UI polish
- fix: address CodeRabbit PR review feedback, add type safety to Antigravity settings and expand unit test coverage
- fix(#275): address CodeRabbit review findings
- fix(git-accounts): bootstrap per-workspace gh login isolation (#285)
- fix(work-items): address CodeRabbit review findings on PR #284
- fix(work-items): address review findings — workspace validation, clear_all teardown, HLC monotonicity
- fix(db): v40 backstop for sessions.agent_profile
- fix(work-items): atomic CRUD+op emission, cache hlc node id (code review)
- fix(work-items): zero-pad packed HLC for correct outbox ordering; warn on unknown op_type (code review)
- fix(work-items): make v42 migration atomic via migrate_atomic (code review)
- fix(ci): stage tauri sidecar + plugin cdylibs so cargo test compiles (#280)
- fix: reload work items on workspace change + edge-case test coverage
- fix: scope agent work_item_update to caller's workspace (code review)
- fix: keyed composer remount + reuse STATUS/PRIORITY_ORDER (code review)
- fix: use format!("{:#}", e) at work_item IPC boundary per convention
- fix: use SQLITE_NOTFOUND for work_item not-found cases (code review)
- fix(workflow): resolve Claude CLI + login-shell PATH for agent tasks
- fix(shell-v2): activate session's workspace on click so explorer follows
- fix(shell-v2): design-parity pass — crash, 18 discrepancies, left-dock
- fix(shell-v2): dock panels cross-panel consistency (gap pass 3)
- fix(shell-v2): dock panels token-consistency + a11y polish (gap pass 2)
- fix(shell-v2): prevent startup crash when file tree lists an out-of-workspace cwd
- fix(shell-v2): P1 review nit — shell-mode shortcut labels match formatKeybinding order
- fix(shell-v2): gate v2 structural tokens to remove brandV2 source-order footgun
- fix(phase5): per-file search cap, robust path join, clippy (#23, #22, #20)
- fix(editor): surface open/save IPC errors as toasts + pin Cmd+E binding test
- fix: reduce terminal hot-path work
🔧 Refactors
- refactor(work-items): clearer relay/WS diagnostics + no-silent-failure test
- refactor(lib): use dirs_next::home_dir() in ide_app_path + expand_tilde
- refactor(shell-v2): remove legacy shell, make shell-v2 + brand-v2 unconditional
- refactor(design): swap global rule literals for motion/radii/tint tokens (redesign phase 1)
- refactor(design): align Button to radius/motion/tint tokens (redesign phase 1)
📝 Docs
- docs(work-items): address CodeRabbit nitpicks — MD022 blanks + e2e viewport note
- docs(competitive): add Ocean vs Superset audit + improvement plans
- docs(work-items): Plan 2 — relay sync engine + client (mock relay)
- docs(work-items): document Delete policy + unpack overflow in sync core
- docs(work-items): Plan 1 — local op-log foundation (TDD task plan)
- docs(work-items): default visibility policy to agent_confirm
- docs(work-items): team-shared work items design (op-log sync over relay)
- docs: add workspace work-items spec + implementation plan
- docs(release): v0.14.0 narrative + script consumes docs/releases/
- docs(redesign): grounded Ocean shell-rebuild plan vs prototype/ocean-ide
- docs(redesign): roadmap — Phase 4 implemented (PR #272) + stack structure
- docs(redesign): Phase 4 status — implemented (4a-4d + 4f; 4e already-present)
- docs(redesign): Phase 3 status — full cargo test (2405) verified
- docs(redesign): Phase 3 status — canvas + AI panel implemented
- docs(redesign): Phase 3 implementation plan
- docs(redesign): Phase 3 design — AI chat panel + Agent Canvas fan-out
- docs: Ocean redesign Phase 2 spec + implementation plan (editor pane + file-tree dock)
- docs: Ocean redesign Phase 1 implementation plan
- docs: Ocean redesign Phase 1 design spec (token foundation + component alignment)
🧪 Tests
- test(perf): update TerminalPane decoder guard for per-session decoder
- test(work-items): capstone — two installs converge through the real relay (Plan 5 task 10)
- test: cover composer create/edit submission + kind filter behavior
- test: cover work_item agent path + composer remount on edit-target switch
- test: include work-items in ideViewRegistry id-list assertion
- test: add __resetWorkItemStoreForTest for test isolation (code review)
- test(screenshots): one-command screenshot runner + IDE-shell & redesigned-layout captures
- test(e2e): exhaustive E2E for IDE-shell surfaces (canvas, palette views, overlays, phase 5)
- test(editor): list_directory allowlist-denial + EditorLayout open/edit/save round-trip
🧹 Internals
- chore: ignore .ocean/ runtime data directory
- chore(deps): record axum ws feature deps in lockfile (Plan 5 task 7)
- chore(ci): bump GitHub-maintained actions to v5 (Node 24) (#281)
- chore(canvas): suppress too_many_arguments on promote_canvas_session + fmt
- chore(editor): add CodeMirror 6 dependencies — phase 2
Install
tar -xzf Ocean_0.14.1_aarch64.app.tar.gz
mv Ocean.app /Applications/
xattr -cr /Applications/Ocean.appPlatform: macOS (Apple Silicon)