Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
acc46f0
feat: add codex agent support
pallyoung Mar 31, 2026
4f09c99
refactor: unify agent config to current runtime
pallyoung Mar 31, 2026
83cef10
perf: optimize workspace sync hot paths
pallyoung Mar 31, 2026
295b233
perf: batch websocket stream events
pallyoung Mar 31, 2026
4a8b260
perf: bound websocket outbound pressure
pallyoung Mar 31, 2026
c4d0ff2
test: cover websocket burst batching
pallyoung Mar 31, 2026
aaa6d72
test: add websocket transport profiling
pallyoung Mar 31, 2026
22e410b
test: profile mixed websocket burst workloads
pallyoung Mar 31, 2026
0df1e3e
perf: reduce runtime reload churn
pallyoung Mar 31, 2026
0167272
perf: collapse runtime attach db critical sections
pallyoung Mar 31, 2026
b1d64de
perf: collapse controller disconnect db sections
pallyoung Mar 31, 2026
ab79227
perf: collapse rpc controller guard db sections
pallyoung Mar 31, 2026
2929320
perf: reduce runtime snapshot session scans
pallyoung Mar 31, 2026
9e6d27f
style: format server sources
pallyoung Mar 31, 2026
b14adb4
test: align e2e coverage with runtime replay flow
pallyoung Mar 31, 2026
f2a4ebb
fix: stabilize settings persistence and burst transport coverage
pallyoung Mar 31, 2026
1bd15f6
fix: stabilize release workspace flows and transport burst tests
pallyoung Mar 31, 2026
418089c
fix: serialize settings saves and tighten reload history
pallyoung Mar 31, 2026
d001096
fix: extend windows burst fixture drain
pallyoung Mar 31, 2026
634df84
fix: launch windows agents directly
pallyoung Mar 31, 2026
a9942d4
docs: add provider standardization design
pallyoung Mar 31, 2026
9ec6cf2
feat: standardize provider adapters and refresh state
pallyoung Mar 31, 2026
90d9c25
fix: gate draft launcher on draft sessions
pallyoung Mar 31, 2026
e25f1f8
fix: stabilize agent session stream sanitization
pallyoung Apr 1, 2026
ae47126
fix: preserve live agent terminal output
pallyoung Apr 1, 2026
24929bc
docs: add session terminal alignment design
pallyoung Apr 2, 2026
8413c0f
feat: add terminal-aligned session runtime start
pallyoung Apr 2, 2026
10a1df4
feat: mirror session transcripts from bound terminals
pallyoung Apr 2, 2026
8dfcd8f
feat: render session panes from bound terminals
pallyoung Apr 2, 2026
833cc1d
feat: route session runtime through terminal transport
pallyoung Apr 2, 2026
adbe272
refactor: remove dedicated agent runtime transport path
pallyoung Apr 2, 2026
026cf8a
Align session startup with terminal runtime
pallyoung Apr 2, 2026
a02e5f5
Commit remaining workspace changes
pallyoung Apr 2, 2026
d747813
Align session pane output with terminal rendering
pallyoung Apr 2, 2026
3c259e3
refactor: remove session stream data path
pallyoung Apr 2, 2026
b4124c4
feat: add ConfirmDialog component for delete confirmation
pallyoung Apr 2, 2026
10a426c
fix: improve button hover visibility and remove codex hooks flag
pallyoung Apr 2, 2026
0c0236a
Fix codex session recovery bootstrap
pallyoung Apr 3, 2026
54c8c5a
refactor: sync provider settings with runtime adapters
pallyoung Apr 4, 2026
faf2b8f
fix: resume history sessions on first restore
pallyoung Apr 4, 2026
074a21b
refactor: move provider hooks to global configs
pallyoung Apr 4, 2026
02f0df4
Fix session terminal recovery and remove stale session stream
pallyoung Apr 4, 2026
991ad86
feat: add cli service state persistence
pallyoung Apr 4, 2026
392e0fd
feat: add service launcher generation
pallyoung Apr 4, 2026
19e0f87
feat: add cli user service adapters
pallyoung Apr 4, 2026
2f2812e
feat: proxy managed runtime commands to native services
pallyoung Apr 4, 2026
2cfcc80
feat: add cli service commands
pallyoung Apr 4, 2026
e665f76
test: expand cli coverage for managed service flows
pallyoung Apr 4, 2026
0f3eb9c
Add settings workspace redesign spec
pallyoung Apr 4, 2026
edc1615
feat: derive session titles from first submitted input
pallyoung Apr 4, 2026
3798b4c
refactor: remove frontend slash menu remnants
pallyoung Apr 4, 2026
a5ff67d
feat: add settings workspace shell
pallyoung Apr 4, 2026
6d0e225
fix: polish settings shell structure
pallyoung Apr 4, 2026
8d1ddf9
fix: add base settings shell styles
pallyoung Apr 4, 2026
959dbd9
feat: section provider settings workspace
pallyoung Apr 4, 2026
376fb64
fix: restore provider persistence coverage
pallyoung Apr 4, 2026
8c3ab3d
fix: refine provider section presentation
pallyoung Apr 4, 2026
206f1ea
style: redesign settings workspace
pallyoung Apr 4, 2026
3e8ea27
fix: align settings compact surfaces
pallyoung Apr 4, 2026
88a57c4
fix: tighten settings responsive polish
pallyoung Apr 4, 2026
7f32f04
feat: rework workspace runtime session flow
pallyoung Apr 4, 2026
16f8a0f
Refine provider settings persistence and trim unused i18n
pallyoung Apr 4, 2026
746b4b8
fix: replace dead terminal snapshots in place
pallyoung Apr 4, 2026
0a48391
Fix history restore pane state and terminal exit reporting
pallyoung Apr 5, 2026
7fd351e
docs: add provider-native session history design
pallyoung Apr 5, 2026
c5e103d
feat: add string session slots and bindings
pallyoung Apr 5, 2026
9325afc
feat: rebuild provider-native session history
pallyoung Apr 5, 2026
b097417
feat: finish provider-native session history states
pallyoung Apr 5, 2026
395d35b
feat: polish supervisor objective workflow
pallyoung Apr 6, 2026
2ef92d6
feat: add supervisor service and isolate runtime tests
pallyoung Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ playwright-report/
!.env.example
!.env.sample

# Local provider config
.claude/
.codex/
.codex
.superpowers/

# Logs
*.log
npm-debug.log*
Expand All @@ -38,5 +44,6 @@ Thumbs.db
output
.tmp
.playwright-cli
.playwright-mcp
.artifacts/
.worktrees/
84 changes: 83 additions & 1 deletion apps/server/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions apps/server/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10"
tokio = { version = "1.40", features = ["rt-multi-thread", "macros", "process", "signal", "time"] }
toml = "0.8"
tower-http = { version = "0.6", features = ["cors", "fs"] }
url = "2"
39 changes: 38 additions & 1 deletion apps/server/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ use tokio::sync::broadcast;

use crate::{
auth::{ip_guard::IpGuardMap, AuthRuntime},
models::{ExecTarget, TransportEvent},
models::{
ExecTarget, GitChangeEntry, GitStatus, SessionInfo, TransportEvent, WorkspaceTree,
WorktreeInfo,
},
services::artifact_cache::TimedCache,
AppHandle,
};

Expand All @@ -36,6 +40,8 @@ pub(crate) struct TerminalRuntime {
pub killer: Mutex<Box<dyn ChildKiller + Send + Sync>>,
pub writer: Mutex<Option<Box<dyn Write + Send>>>,
pub master: Mutex<Box<dyn MasterPty + Send>>,
pub output: Mutex<String>,
pub persist_workspace_terminal: bool,
pub process_id: Option<u32>,
pub process_group_leader: Option<i32>,
}
Expand All @@ -52,19 +58,44 @@ pub(crate) struct WorkspaceWatchSuppression {
pub until: Instant,
}

#[derive(Clone)]
pub(crate) struct ArtifactCaches {
pub git_status: TimedCache<GitStatus>,
pub git_changes: TimedCache<Vec<GitChangeEntry>>,
pub workspace_tree: TimedCache<WorkspaceTree>,
pub worktree_list: TimedCache<Vec<WorktreeInfo>>,
}

impl Default for ArtifactCaches {
fn default() -> Self {
Self {
git_status: Arc::new(Mutex::new(HashMap::new())),
git_changes: Arc::new(Mutex::new(HashMap::new())),
workspace_tree: Arc::new(Mutex::new(HashMap::new())),
worktree_list: Arc::new(Mutex::new(HashMap::new())),
}
}
}

pub(crate) struct AppState {
pub db: Mutex<Option<Connection>>,
pub auth: Mutex<AuthRuntime>,
pub agents: Mutex<HashMap<String, Arc<AgentRuntime>>>,
pub terminals: Mutex<HashMap<String, Arc<TerminalRuntime>>>,
pub live_sessions: Mutex<HashMap<String, SessionInfo>>,
pub session_runtime_bindings: Mutex<HashMap<String, u64>>,
pub terminal_runtime_bindings: Mutex<HashMap<u64, String>>,
pub workspace_client_connections: Mutex<HashMap<String, usize>>,
pub workspace_watches: Mutex<HashMap<String, WorkspaceWatch>>,
pub workspace_watch_suppressions: Arc<Mutex<HashMap<String, WorkspaceWatchSuppression>>>,
pub next_terminal_id: Mutex<u64>,
pub ip_guard: Mutex<IpGuardMap>,
pub hook_endpoint: Mutex<Option<String>>,
pub http_endpoint: Mutex<Option<String>>,
pub artifact_caches: ArtifactCaches,
pub transport_events: broadcast::Sender<TransportEvent>,
#[cfg(test)]
pub terminal_write_log: Mutex<Vec<(String, u64, String, crate::models::TerminalWriteOrigin)>>,
}

impl Default for AppState {
Expand All @@ -75,14 +106,20 @@ impl Default for AppState {
auth: Mutex::new(AuthRuntime::default()),
agents: Mutex::new(HashMap::new()),
terminals: Mutex::new(HashMap::new()),
live_sessions: Mutex::new(HashMap::new()),
session_runtime_bindings: Mutex::new(HashMap::new()),
terminal_runtime_bindings: Mutex::new(HashMap::new()),
workspace_client_connections: Mutex::new(HashMap::new()),
workspace_watches: Mutex::new(HashMap::new()),
workspace_watch_suppressions: Arc::new(Mutex::new(HashMap::new())),
next_terminal_id: Mutex::new(1),
ip_guard: Mutex::new(HashMap::new()),
hook_endpoint: Mutex::new(None),
http_endpoint: Mutex::new(None),
artifact_caches: ArtifactCaches::default(),
transport_events,
#[cfg(test)]
terminal_write_log: Mutex::new(Vec::new()),
}
}
}
Expand Down
Loading
Loading