Commit Graph

  • daf87d3c09 feat(app): panel zoom — full-grid render + header toggle vasyansk 2026-06-10 12:27:05 +07:00
  • 2b1ccaf31d feat: persisted per-workspace panel zoom (proto + daemon, auto-clear on removal) vasyansk 2026-06-10 12:16:44 +07:00
  • defceb1169 feat(app): real daemon health footer (live, uptime, version) vasyansk 2026-06-10 12:09:35 +07:00
  • f7763a84fc feat: Health command — version, pid, started_at (proto + daemon) vasyansk 2026-06-10 12:01:54 +07:00
  • f18d929c10 docs: SP1+SP3+SP4 implementation plan vasyansk 2026-06-10 11:57:45 +07:00
  • a707895200 docs: SP1+SP3+SP4 design — observability, scrollback search, panel zoom vasyansk 2026-06-10 11:52:39 +07:00
  • c9ed522230 chore(app): regenerate Tauri schemas for window-state permission vasyansk 2026-06-10 09:25:43 +07:00
  • a5156859d6 Merge: persist window size/position via tauri-plugin-window-state vasyansk 2026-06-10 09:25:29 +07:00
  • 7d8e39ca3d feat(app): remember window size/position across restarts (window-state plugin) vasyansk 2026-06-10 09:25:29 +07:00
  • 5fca6bfd09 Merge SP2: UI parity + persistent event log & read-model vasyansk 2026-06-10 08:59:34 +07:00
  • 615b90e887 test(daemon): event log survives cold daemon restart vasyansk 2026-06-10 08:35:38 +07:00
  • a8000323ec docs: SP2 manual test scenario and updated Event Center limitations vasyansk 2026-06-10 08:30:21 +07:00
  • 834d61c69a feat(app): daemon-sourced Event Center feed, read-model, bell badge vasyansk 2026-06-10 08:23:26 +07:00
  • d08a446b6f feat(app): event_log and mark_read bridge commands vasyansk 2026-06-10 08:15:22 +07:00
  • 21fe1308cc feat(daemon): EventLog/MarkRead commands; Focus marks surface read vasyansk 2026-06-10 08:08:59 +07:00
  • e83524a076 feat(daemon): record done/wait/error/exit into the event log vasyansk 2026-06-10 07:46:55 +07:00
  • f7bf9fc5c6 wire(daemon): thread EventLog + EventPersister through serve/router vasyansk 2026-06-10 07:31:40 +07:00
  • ac2d5ca1db feat(daemon): JsonEventStore + debounced EventPersister vasyansk 2026-06-10 07:23:25 +07:00
  • 56ba1723b9 feat(daemon): EventLog ring model with read-flags vasyansk 2026-06-10 07:17:29 +07:00
  • 5a8596dd0b feat(proto): EventLog/MarkRead commands and Event/EventsRead events vasyansk 2026-06-10 06:54:05 +07:00
  • fc13e4340c feat(proto): EventKind, EventRecord, MarkReadTarget vasyansk 2026-06-10 06:49:33 +07:00
  • 36964c9f21 feat(app): UI parity with Pencil mockup — top bar, panel cards, sidebar/event-center polish vasyansk 2026-06-10 06:47:38 +07:00
  • 807eab3f6c docs: SP2 implementation plan — persistent event log + read-model vasyansk 2026-06-10 06:40:15 +07:00
  • e038ff307d docs: SP2 design — persistent event log + read-model vasyansk 2026-06-10 06:31:26 +07:00
  • 5c47ec25a1 Merge fix: GUI spaceshd discovery + non-fatal connect vasyansk 2026-06-09 23:31:52 +07:00
  • 92706c0780 fix(app): robust spaceshd discovery for tauri dev + non-fatal connect vasyansk 2026-06-09 23:31:52 +07:00
  • ec4025a683 docs: manual run & test guide (build, daemon, GUI, CLI, per-milestone checks) vasyansk 2026-06-09 23:26:15 +07:00
  • 710fa6473f Merge spacesh M3: status detection sources + UI + native notifications vasyansk 2026-06-09 23:18:50 +07:00
  • c86627153d chore(app): lock notification plugin deps + regenerated tauri schemas vasyansk 2026-06-09 23:14:28 +07:00
  • 1ecefdeb80 feat(app): Event Center, native notifications, auto-unread, state wiring in App vasyansk 2026-06-09 23:13:00 +07:00
  • d36548ff39 feat(app): status rings on panels + sidebar aggregate badge from state events vasyansk 2026-06-09 23:11:46 +07:00
  • c35585755e feat(daemon): actor OSC133/fallback detection → set_state, hook/shell spawn env, cleanup vasyansk 2026-06-09 23:05:18 +07:00
  • 4396ad7909 feat(daemon): zsh OSC 133 shell integration via per-surface ZDOTDIR vasyansk 2026-06-09 23:00:48 +07:00
  • 255fa27271 feat(daemon): versioned Claude Code hook adapter (per-surface CLAUDE_CONFIG_DIR) vasyansk 2026-06-09 23:00:40 +07:00
  • 4ec7dc1a78 feat(core): Osc133Scanner + FallbackScanner status detectors + grid tail_text vasyansk 2026-06-09 22:59:24 +07:00
  • 84a19356e2 docs(plan): M3 implementation plan — status detection sources + UI vasyansk 2026-06-09 22:52:29 +07:00
  • c0c8fe25f1 docs(spec): M3 design — status detection sources + UI + native notifications vasyansk 2026-06-09 22:45:11 +07:00
  • 7f2afc3b8a Merge spacesh M4: CLI + set_state/state status primitive vasyansk 2026-06-09 22:28:30 +07:00
  • 819e936e6d docs(plan): sync M4 lifecycle test with SPACESH_SOCK serial-guard fix vasyansk 2026-06-09 22:24:40 +07:00
  • 67c64e5bfe chore: lock clap/clap_complete for spacesh-cli vasyansk 2026-06-09 22:24:40 +07:00
  • 6fc099bb6f test(daemon): serialize SPACESH_SOCK-mutating lifecycle tests to fix env race vasyansk 2026-06-09 22:23:41 +07:00
  • 6f2e7885a4 test(cli): wire-level integration tests via SPACESH_SOCK mock daemon vasyansk 2026-06-09 22:20:26 +07:00
  • 3c3a8039f3 feat(cli): command dispatch, human/--json rendering, status table, completions vasyansk 2026-06-09 22:17:53 +07:00
  • a9fa1bf77b feat(cli): spacesh-cli scaffold — clap tree, one-shot client, command mapping vasyansk 2026-06-09 22:17:15 +07:00
  • 635f9f4356 feat(daemon): per-surface status (set_state/state), idle-on-spawn, SPACESH_SOCK override vasyansk 2026-06-09 22:13:50 +07:00
  • 4bd4aa4a36 feat(proto): SurfaceState + SetState command + State event + SurfaceView.state vasyansk 2026-06-09 22:10:54 +07:00
  • c2f8ef4214 docs(plan): M4 implementation plan — CLI + set_state/state primitive vasyansk 2026-06-09 22:06:34 +07:00
  • 429fd6977e docs(spec): M4 design — CLI + set_state/state status primitive vasyansk 2026-06-09 21:58:40 +07:00
  • 34cc4ba5ca Merge spacesh M2: layouts, split tree, persistence, sidebar, presets vasyansk 2026-06-09 21:44:16 +07:00
  • 33fc8625af docs(plan): correct M2 deferral note — group commands wired, only drag UI deferred vasyansk 2026-06-09 21:42:01 +07:00
  • c9c3ba1fcd feat(app): wire set_group/delete_group bridge commands vasyansk 2026-06-09 21:41:34 +07:00
  • 0328797bce chore(daemon): remove unused imports and dead placeholders vasyansk 2026-06-09 21:39:43 +07:00
  • 7ec0c84685 feat(app): sidebar, preset picker, wizard, App rewired around workspaces + LayoutEngine vasyansk 2026-06-09 21:31:49 +07:00
  • 0320a2f313 feat(app): tauri bridge commands for M2 (split/ratios/move/preset/restart/groups/meta) vasyansk 2026-06-09 21:30:26 +07:00
  • 4b88d269e3 feat(app): LayoutEngine — recursive split render, splitter resize, stopped overlay vasyansk 2026-06-09 21:29:26 +07:00
  • ee2f7097ce feat(app): M2 layout TS types + bridge commands vasyansk 2026-06-09 21:28:54 +07:00
  • 62a65b691d feat(daemon): M2 command dispatch, layout events, cold-start restore, persistence wiring vasyansk 2026-06-09 21:25:35 +07:00
  • b72f4cb3a5 feat(daemon): spawn_from_spec to (re)start surfaces from a persisted spec vasyansk 2026-06-09 21:22:29 +07:00
  • d516414ac9 feat(daemon): registry owns workspaces/groups/trees + running/stopped surfaces vasyansk 2026-06-09 21:21:47 +07:00
  • 7515516699 feat(daemon): debounced persist scheduler coalescing bursts into one save vasyansk 2026-06-09 21:20:58 +07:00
  • 4f7ed2a5a3 feat(daemon): StateStore trait + atomic JSON store with corrupt-file backup vasyansk 2026-06-09 21:20:51 +07:00
  • 9927046c7e feat(core): 10 layout preset generators vasyansk 2026-06-09 21:15:47 +07:00
  • 28d0e05763 feat(core): n-ary tree ops — split, remove+collapse, ratios, move vasyansk 2026-06-09 21:15:08 +07:00
  • 2723d40ff9 feat(proto): M2 commands (split/ratios/move/preset/restart/groups/meta) and events vasyansk 2026-06-09 21:13:33 +07:00
  • c8ba401023 feat(proto): SurfaceSpec, Group, Workspace, status view types vasyansk 2026-06-09 21:12:29 +07:00
  • 114922aaf8 feat(proto): GroupId, Orient, n-ary LayoutNode with external-tagged serde vasyansk 2026-06-09 21:11:51 +07:00
  • d859aa8841 docs(plan): M2 implementation plan — layouts, persistence, sidebar, presets vasyansk 2026-06-09 21:08:40 +07:00
  • ac13976bfd docs(spec): M2 design — layouts, split tree, persistence, sidebar, presets vasyansk 2026-06-09 20:58:51 +07:00
  • 17351f3da2 Merge spacesh M0+M1: daemon, PTY, grid/snapshot, Tauri app vasyansk 2026-06-09 20:41:23 +07:00
  • ecc6eb9d66 design: spacesh v1 UI mockups (main, code/diff, wizard, auth, account) vasyansk 2026-06-09 20:39:51 +07:00
  • b2c771f4f7 chore: commit Cargo.lock for reproducible daemon/app builds vasyansk 2026-06-09 20:39:51 +07:00
  • 0cc1303fd9 docs(plan): sync Task 13 attach-snapshot with double-render fix vasyansk 2026-06-09 20:39:51 +07:00
  • f1630633e5 test(daemon): serialize heavy socket/PTY integration tests vasyansk 2026-06-09 20:39:24 +07:00
  • 77dfc69bd9 fix(daemon): remove pending broadcast on attach to prevent reattach double-render vasyansk 2026-06-09 20:33:11 +07:00
  • 62e86a1c97 feat(app): reattach repaint + disconnect guard (M1) vasyansk 2026-06-09 20:25:55 +07:00
  • 56893c51d0 feat(app): UDS bridge (channel/invoke/emit) + xterm.js terminal, M0 e2e works vasyansk 2026-06-09 20:24:57 +07:00
  • 1579686fdd chore(app): scaffold tauri 2 + react + vite, window launches vasyansk 2026-06-09 20:22:46 +07:00
  • a56d8d0fea test(daemon): harden reattach test with pre-connect socket guard vasyansk 2026-06-09 20:16:18 +07:00
  • 18ac699951 feat(daemon): launchd user-agent install with KeepAlive vasyansk 2026-06-09 20:14:00 +07:00
  • f49fc41cd1 test(daemon): reattach after disconnect repaints prior output from snapshot vasyansk 2026-06-09 20:13:32 +07:00
  • 732eef96b5 feat(daemon): grid feed + output coalescing + snapshot-on-attach (M1) vasyansk 2026-06-09 20:12:55 +07:00
  • b201d0104e feat(core): deterministic ANSI snapshot of the grid for reattach repaint vasyansk 2026-06-09 20:11:37 +07:00
  • e2b746dd64 feat(core): GridSurface feeding PTY bytes into alacritty term vasyansk 2026-06-09 20:10:49 +07:00
  • 8d0b5b8d1d test(daemon): make socket/pty integration tests robust under parallel load vasyansk 2026-06-09 20:05:23 +07:00
  • 4b1a544923 feat(daemon): entrypoint with single-instance lock and lazy socket bind vasyansk 2026-06-09 20:00:41 +07:00
  • 531f89eb73 feat(daemon): socket server with router task, command dispatch, event fan-out (M0) vasyansk 2026-06-09 19:59:58 +07:00
  • 2aedc6924d feat(daemon): registry for workspaces and surfaces with idempotent open vasyansk 2026-06-09 19:58:28 +07:00
  • 32560ea364 feat(daemon): surface actor owning pty + broadcast fan-out (M0, no grid) vasyansk 2026-06-09 19:57:53 +07:00
  • cd1fe1dfd5 feat(daemon): lifecycle paths, single-instance lock, stale-socket cleanup vasyansk 2026-06-09 19:57:11 +07:00
  • 0b6de3d3b4 feat(pty): PtyHandle spawn/read/input/resize/kill over portable-pty vasyansk 2026-06-09 19:56:41 +07:00
  • 482f693835 feat(proto): length-prefixed frame read/write with EOF handling vasyansk 2026-06-09 19:56:00 +07:00
  • 0351efa2c6 feat(proto): envelope, commands, events, ids with serde round-trip tests vasyansk 2026-06-09 19:55:29 +07:00
  • 31dddb3b6c chore: scaffold cargo workspace and crate skeletons vasyansk 2026-06-09 19:54:38 +07:00
  • 83f1c1f57d chore: seed repo with spec, plan, and design vasyansk 2026-06-09 19:50:15 +07:00