You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Root solution lives in `SemanticDeveloper/SemanticDeveloper.sln`; the primary desktop app sits under `SemanticDeveloper/SemanticDeveloper/`.
5
+
- UI resources are split between Avalonia XAML (`*.axaml`) and backing C# files (`*.axaml.cs`); dialogs reside in `Views/`, shared models in `Models/`, and service logic (Codex, Git, MCP, settings) in `Services/`.
6
+
- Static assets (icons, images) are in `SemanticDeveloper/SemanticDeveloper/Images/`; installer scaffolding lives in `SemanticDeveloper/Installers/`.
7
+
8
+
## Build, Test, and Development Commands
9
+
- Restore & compile the app: `dotnet build SemanticDeveloper/SemanticDeveloper/SemanticDeveloper.csproj` (the installer projects lack entry points).
10
+
- Run the desktop app: `dotnet run --project SemanticDeveloper/SemanticDeveloper`.
- Follow standard C# conventions: 4-space indentation, PascalCase for types, camelCase for locals/fields (prefix private fields with `_` when mutable).
15
+
- Keep Avalonia XAML tidy: align attributes, prefer named handlers declared in the paired code-behind.
16
+
- Favor expression-bodied members for single-line getters and avoid trailing whitespace; run `dotnet format` before large refactors.
17
+
- When logging to the CLI pane, use `AppendCliLog` for line entries and prefer the existing `System:` prefixes for system-generated lines.
18
+
19
+
## Testing Guidelines
20
+
- No automated test project exists yet; add new tests alongside features if appropriate.
21
+
- For manual verification, exercise key flows: workspace selection, MCP server loading, Codex login (`codex auth login`), and session restarts.
22
+
- If you introduce automated tests, place them under a `Tests/` sibling folder and document the execution command (e.g., `dotnet test`).
23
+
24
+
## Commit & Pull Request Guidelines
25
+
- Write concise, imperative commit subjects (`Add MCP startup summary`, `Fix Codex auth probe`), with optional body paragraphs for context.
26
+
- Reference issue IDs in the body when applicable and squash trivial commits before submitting a PR.
27
+
- Pull requests should include: a brief summary, testing notes, screenshots/GIFs for UI changes, and links to relevant issues or discussions.
28
+
29
+
## Configuration & Security Notes
30
+
- User-specific MCP servers live at `~/.config/SemanticDeveloper/mcp_servers.json` (or `%AppData%\SemanticDeveloper\mcp_servers.json` on Windows); avoid committing sample credentials.
31
+
- API keys are configured through the app settings; never hard-code secrets—use environment variables or the settings dialog.
A cross‑platform desktop UI (Avalonia/.NET 8) for driving the Codex CLI using its JSON protocol. It lets you:
5
+
A cross‑platform desktop UI (Avalonia/.NET 8) for driving the Codex CLI app server using its JSON protocol. It lets you:
6
6
7
7
- Select a workspace folder and browse files via a lazy file tree
8
8
- Start a Codex session and stream assistant output in real time
9
-
- Send user input that is wrapped as protocol `Submission`s (proto)
9
+
- Send user input that is wrapped as protocol `Submission`s (app server)
10
10
- Auto‑approve exec/patch requests (automatic)
11
11
- Select a Codex profile (from `config.toml`) and load MCP servers from a JSON config
12
12
– See live token usage and estimated context remaining in the header
13
13
14
-
> Important: This app always runs Codex in proto mode via the `proto` subcommand.
14
+
> Important: This app runs Codex through the `app-server` subcommand.
15
15
16
16
## Requirements
17
17
18
18
- .NET SDK 8.0+
19
19
- Codex CLI installed and on `PATH`
20
-
- Verify with: `codex proto --help`
20
+
- Verify with: `codex app-server --help`
21
21
- No external Git required — uses LibGit2Sharp for repo init/staging/commit
22
22
23
23
## Build & Run
@@ -32,7 +32,7 @@ A cross‑platform desktop UI (Avalonia/.NET 8) for driving the Codex CLI using
32
32
1. Open the app, click “Select Workspace…” and choose a folder.
33
33
- If it isn’t a git repo and the Git library is available, you’ll be prompted to initialize one.
34
34
- You can also initialize later from the header via “Initialize Git…”.
35
-
2. Click “Restart Session” to launch `codex proto` in the workspace directory (a session also starts automatically after you select a workspace).
35
+
2. Click “Restart Session” to launch `codex app-server` in the workspace directory (a session also starts automatically after you select a workspace).
36
36
3. Type into the input box and press Enter to send. Output appears in the right panel.
37
37
4. “CLI Settings” lets you change:
38
38
- Profile (from Codex `config.toml`) — passed via `-c profile=<name>`
@@ -154,7 +154,7 @@ Notes
154
154
155
155
## Conversation & Protocol Behavior
156
156
157
-
- Always uses proto mode: the app starts the CLI with `codex proto`.
157
+
- Always uses the Codex app server: the app starts the CLI with `codex app-server`.
158
158
- User input is wrapped as a protocol `Submission` with a new `id` and an `op` payload:
159
159
- Defaults to `user_input` with `items: [{ type: "text", text: "..." }]`.
160
160
- When the app infers that a full turn is required, it sends `user_turn` and includes
@@ -175,7 +175,7 @@ Notes
175
175
- Returns to `idle` only when the server signals `task_complete` (or `turn_aborted`).
176
176
177
177
- Stop vs. Restart:
178
-
- Stop sends a proto `interrupt` to abort the current turn (like pressing Esc in the CLI) without killing the session; it falls back to terminating the process if needed.
178
+
- Stop sends an `interrupt` to the app server to abort the current turn (like pressing Esc in the CLI) without killing the session; it falls back to terminating the process if needed.
179
179
- Restart ends the current process and starts a fresh session in the same workspace.
180
180
181
181
- Clear Log clears both the on‑screen log and the underlying editor document; it does not affect the session.
@@ -206,12 +206,12 @@ Selection behavior:
206
206
- Change selections, then click “Restart Session” to apply.
207
207
## Troubleshooting
208
208
209
-
- “Failed to start 'codex'”: Ensure the CLI is installed and on `PATH`. Test with `codex --help` and `codex proto --help`.
209
+
- “Failed to start 'codex'”: Ensure the CLI is installed and on `PATH`. Test with `codex --help` and `codex app-server --help`.
210
210
- Model selection: Prefer using `config.toml` (via Profiles). You can set `model`, `model_provider`, and related options per the Codex docs.
211
211
- Git init issues: The app uses LibGit2Sharp (no Git CLI needed). If the native lib fails to load, the app skips initialization. Commits use your configured name/email if available; otherwise a fallback signature is used.
212
212
213
213
- Authentication:
214
-
- If you are not using an API key and the Codex CLI is not logged in (no `~/.codex/auth.json`), the proto stream returns 401. The app detects this and prompts to run `codex auth login` for you. Follow the browser flow; on success the app restarts the proto session automatically.
214
+
- If you are not using an API key and the Codex CLI is not logged in (no `~/.codex/auth.json`), the app-server stream returns 401. The app detects this and prompts to run `codex auth login` for you. Follow the browser flow; on success the app restarts the session automatically.
215
215
- If your CLI version doesn’t support `auth login`, the app falls back to `codex login`.
216
216
- When “Use API Key” is enabled in CLI Settings, the app attempts a non‑interactive `codex login --api-key <key>` before sessions and on 401. If login succeeds, it restarts the session automatically.
217
217
@@ -235,7 +235,7 @@ Selection behavior:
235
235
236
236
## Notes
237
237
238
-
-Proto mode is enforced in code; the app does not fall back to non‑proto modes.
238
+
-App-server mode is enforced in code; the app does not fall back to legacy proto mode.
239
239
- Settings are stored under the OS‑specific application data directory and loaded on startup.
240
240
- The log view uses AvaloniaEdit + TextMate (Dark+) for better legibility and simple JSON syntax coloring.
0 commit comments