Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
d4172e8
docs: sync cli management docs with implementation
google-labs-jules[bot] Jul 6, 2026
1939279
Update architecture docs for container-first runtime
google-labs-jules[bot] Jul 6, 2026
499b5da
docs: update scheduler documentation to match latest API and MCP beha…
google-labs-jules[bot] Jul 6, 2026
787863b
docs: update settings resolution precedence and source metadata
google-labs-jules[bot] Jul 7, 2026
99a6a96
docs: Update quicksprint templates docs for current execution UX and API
google-labs-jules[bot] Jul 7, 2026
f5809a9
docs: update Git branching and CLI workflow settings documentation
google-labs-jules[bot] Jul 7, 2026
bf3608e
docs: sync CLI commands and scripts with package.json
google-labs-jules[bot] Jul 7, 2026
edc5aa2
docs: update MCP tool inventory and deprecate manage_code_ux
google-labs-jules[bot] Jul 7, 2026
bb26f70
Merge pull request #737 from numnx/update-cli-management-docs-3216227…
numnx Jul 7, 2026
326ff74
Merge pull request #740 from numnx/jules-5494858678528543061-4f8c4aec
numnx Jul 7, 2026
9636e52
Merge pull request #739 from numnx/fix-scheduler-docs-176157533672811…
numnx Jul 7, 2026
df8b0ef
Merge pull request #743 from numnx/chore/docs-cli-commands-sync-14625…
numnx Jul 7, 2026
cfe475e
Merge pull request #741 from numnx/quicksprint-docs-update-1255329214…
numnx Jul 7, 2026
24770ea
Merge pull request #738 from numnx/update-architecture-docs-runtime-9…
numnx Jul 7, 2026
10d76b5
Merge pull request #742 from numnx/docs/update-git-cli-workflow-setti…
numnx Jul 7, 2026
5674ed7
docs: align provider routing and auth mode docs with instance archite…
google-labs-jules[bot] Jul 7, 2026
f6f5354
Merge pull request #745 from numnx/update-provider-routing-docs-18165…
numnx Jul 7, 2026
85dc35b
docs: distinguish `search_knowledge` from `manage_memory` claims
google-labs-jules[bot] Jul 7, 2026
62f2db3
fix(merge): resolve feature/CODUX-44-qs-documentation-developer-surfa…
Jul 7, 2026
76b1e19
Merge pull request #746 from numnx/fix-manage-memory-knowledge-docs-1…
numnx Jul 7, 2026
2b91660
Merge pull request #744 from numnx/docs-mcp-tool-inventory-1128589666…
numnx Jul 7, 2026
c1ce821
docs: explicitly document settings human confirmation gate
google-labs-jules[bot] Jul 7, 2026
1fef8ea
docs: align settings documentation with current dashboard UI
google-labs-jules[bot] Jul 7, 2026
dc9d978
docs: Update sprint and task page documentation
google-labs-jules[bot] Jul 7, 2026
cee7105
Merge pull request #748 from numnx/jules-17731459335284195512-9b4cacd9
numnx Jul 7, 2026
a9c21a0
docs: update Docker workspace and cleanup documentation
google-labs-jules[bot] Jul 7, 2026
d1eac39
Merge pull request #747 from numnx/update-settings-approval-docs-1280…
numnx Jul 7, 2026
63805c2
Merge pull request #750 from numnx/docs-docker-cleanup-updates-142003…
numnx Jul 7, 2026
3631861
docs: align live runtime architecture docs with current UI
google-labs-jules[bot] Jul 7, 2026
f747467
docs: update agents documentation to match v2 behavior and ui components
google-labs-jules[bot] Jul 7, 2026
581c9ad
Merge pull request #751 from numnx/fix-live-runtime-docs-139329506029…
numnx Jul 7, 2026
692df54
Merge pull request #752 from numnx/update-agents-documentation-627623…
numnx Jul 7, 2026
2000835
fix(merge): resolve feature/CODUX-44-qs-documentation-developer-surfa…
Jul 7, 2026
ccd66e2
Merge pull request #749 from numnx/fix/update-docs-sprints-tasks-1533…
numnx Jul 7, 2026
c6d3e78
docs: update mcp transport and runtime role documentation
google-labs-jules[bot] Jul 7, 2026
7cd7f4b
Merge pull request #753 from numnx/docs-mcp-cleanup-120115405485038345
numnx Jul 7, 2026
18e5626
docs: synchronize sprint preview browser docs with current backend ca…
google-labs-jules[bot] Jul 7, 2026
9c2870d
docs: update dashboard v2 overview and realtime architecture
google-labs-jules[bot] Jul 7, 2026
936bfd1
Merge pull request #755 from numnx/docs/dashboard-v2-realtime-update-…
numnx Jul 7, 2026
b513a87
fix(merge): resolve feature/CODUX-44-qs-documentation-developer-surfa…
Jul 7, 2026
67935d5
Merge pull request #754 from numnx/fix-preview-docs-8704166769834444643
numnx Jul 7, 2026
a710d70
docs: align sprint orchestration behavior with current execution flow
google-labs-jules[bot] Jul 7, 2026
6ab8019
Merge pull request #756 from numnx/jules-7839629614823547377-ee604b90
numnx Jul 7, 2026
471e46e
docs: update chat routing and cancellation behavior
google-labs-jules[bot] Jul 7, 2026
dcfa443
docs: Clarify canonical documentation source of truth and deprecate d…
google-labs-jules[bot] Jul 7, 2026
7e3aeec
docs: update file browser surface and route documentation
google-labs-jules[bot] Jul 7, 2026
d5b3e9c
Merge pull request #759 from numnx/docs/file-browser-accuracy-1215357…
numnx Jul 7, 2026
010ef14
docs: update telemetry and stats documentation to match codebase
google-labs-jules[bot] Jul 7, 2026
4254d67
Merge pull request #757 from numnx/docs-chat-update-6096892687035118150
numnx Jul 7, 2026
43b5ae2
Merge pull request #760 from numnx/telemetry-docs-update-447259234249…
numnx Jul 7, 2026
2397704
Merge pull request #758 from numnx/docs-canonical-truth-1143285060427…
numnx Jul 7, 2026
5cdaccd
docs: correct security hardening facts, placeholders, and Docker mounts
google-labs-jules[bot] Jul 7, 2026
61780bd
Merge pull request #761 from numnx/docs/fix-security-docs-41882060159…
numnx Jul 7, 2026
9dde2a7
docs: align terminology with Code UX and fix broken links
google-labs-jules[bot] Jul 7, 2026
00aa2a7
Merge pull request #762 from numnx/docs/update-codeux-terminology-137…
numnx Jul 7, 2026
c640538
docs: align developer docs with current Code UX runtime and CI sequences
google-labs-jules[bot] Jul 7, 2026
059befa
fix(merge): resolve feature/CODUX-44-qs-documentation-developer-surfa…
Jul 7, 2026
a68cd41
Merge pull request #763 from numnx/fix/docs-consistency-7639111637287…
numnx Jul 7, 2026
77fdc9f
docs: mirror canonical documentation behavior to docs-web
google-labs-jules[bot] Jul 7, 2026
aae1b19
Merge pull request #764 from numnx/jules-4172705759099593598-829086c6
numnx Jul 7, 2026
59671f8
docs: align operational docs for endpoints, logging, and recovery ser…
google-labs-jules[bot] Jul 7, 2026
953b3da
Merge pull request #765 from numnx/docs/operational-claims-7461224691…
numnx Jul 7, 2026
75090a7
docs: synchronize documentation for source-run commands and orchestra…
google-labs-jules[bot] Jul 7, 2026
c2f8880
Merge pull request #766 from numnx/fix-docs-sync-7647390425519061675
numnx Jul 7, 2026
f5ef617
docs(web): deprecate manage_code_ux in favor of grouped management tools
google-labs-jules[bot] Jul 7, 2026
c0ee5a8
Merge pull request #767 from numnx/docs/replace-manage-code-ux-refere…
numnx Jul 7, 2026
8edbba2
Merge pull request #768 from numnx/feature/CODUX-44-qs-documentation-…
numnx Jul 7, 2026
c54300f
chore: merge dev into sprint documentation audit
numnx Jul 7, 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
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
JULES_API_KEY=your_api_key_here
JULES_API_KEY=<YOUR_JULES_API_KEY>
DASHBOARD_PORT=4444
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Package manager is **pnpm** (`pnpm@10.33.0`), Node **22+**. Use `pnpm`, not `npm
- `pnpm run typecheck` / `pnpm run lint`: strict `tsc --noEmit` (the two are the same command).
- `pnpm run test`: full Vitest run. `pnpm run test:backend` / `pnpm run test:dashboard`: scoped suites.
- `pnpm run test:watch`: watch mode. `pnpm run test:coverage`: coverage with threshold enforcement.
- `pnpm run ci`: local CI equivalent (`lint` → `test:backend:coverage` → `test:dashboard` → `build`).
- `pnpm run ci`: local CI equivalent (`quality:guardrails -> audit -> lint -> test:backend:coverage -> test:dashboard -> build`).
- `pnpm run audit`: `pnpm audit --audit-level=high`.
- `pnpm start`: run compiled `dist/index.js`. `node dist/index.js --help`: list CLI flags / env vars.
- Electron: `pnpm run electron:dev`, `pnpm run electron:dist[:linux|:mac|:win]`.
Expand Down Expand Up @@ -75,7 +75,7 @@ Package manager is **pnpm** (`pnpm@10.33.0`), Node **22+**. Use `pnpm`, not `npm
- `dev` is the integration branch. Always create and work from a feature branch off `dev` (never commit directly to `dev` or `main`).
- Use descriptive branch names such as `feat/<scope>`, `fix/<scope>`, or `chore/<scope>`.
- Merge changes into `dev` only via pull requests after required CI checks pass (not into `main`).
- Push branches to `origin` (`codeux-ai/codeux`) and target it for PRs.
- Push branches to `origin` (the `numnx/codeux` fork) and target it for PRs. `upstream` is `codeux-ai/codeux`.
- Use GitHub CLI (`gh`) for PR workflow when available (for example `gh pr create --base dev`, `gh pr view`, `gh pr merge`).
- PRs should include:
- What changed and why.
Expand Down Expand Up @@ -165,7 +165,7 @@ Release note rules:
- Default working flow for our collaboration:
- Start every change on a new feature branch off `dev`.
- Implement and validate locally (`pnpm run build` minimum; `pnpm run ci` preferred).
- Open a PR into `dev` against `origin` (`codeux-ai/codeux`) using GitHub CLI.
- Open a PR into `dev` against `origin` (the `numnx/codeux` fork) using GitHub CLI.
- Monitor CI continuously after opening the PR.
- Merge only through PR after all required CI checks pass without errors.
- Delete merged feature branches to keep the branch list clean.
Expand Down
7 changes: 4 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ pnpm run test:watch # Vitest watch mode
pnpm test tests/backend/smoke.test.ts # Single test file
pnpm run test:coverage # Coverage with threshold enforcement
pnpm run typecheck # tsc --noEmit (alias: lint — same command)
pnpm run ci # lint + test:backend:coverage + test:dashboard + build
pnpm run ci # quality:guardrails -> audit -> lint -> test:backend:coverage -> test:dashboard -> build
pnpm run audit # pnpm audit --audit-level=high
```

Electron: `pnpm run electron:dev`, `pnpm run electron:dist[:linux|:mac|:win]`.

Coverage thresholds (vitest.config.ts, ratchet-only — never lower): lines 77.4%, functions 71.5%,
branches 66.1%, statements 76.0%. `src/server/activity-cache-service.ts` has a separate 80% line
gate. CI runs on Node 22: lint backend coverage dashboard tests → build.
gate. CI runs on Node 22: lint -> test:backend:coverage -> test:dashboard -> build.

## Architecture

Expand Down Expand Up @@ -152,7 +152,8 @@ In this working environment you have broad latitude to operate the running syste

- Conventional Commits (`feat:`, `fix:`, `docs:`, `chore:`). **`dev` is the integration branch** —
branch off `dev` and open PRs **into `dev`** (not `main`) after CI passes; use `gh` for PR workflow.
- Remotes: `origin` is `codeux-ai/codeux` — push feature branches there and target it for PRs.
- Remotes: `origin` is the **`numnx/codeux` fork** — push branches there and target it for PRs.
`upstream` is `codeux-ai/codeux`; do not push or PR there unless explicitly asked.
- 2-space indent, `camelCase` vars/functions, `PascalCase` types/components. Strict typing — avoid
`any`. No new plain-JS modules. Tailwind is the only styling approach; don't add UI frameworks.
- Documentation source of truth is `docs/` (entrypoint `docs/index.md`, index `docs/SUMMARY.md`).
Expand Down
6 changes: 1 addition & 5 deletions GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,7 @@ All UI work must meet the quality gate in `STYLEGUIDE.md`:
`vi.spyOn()` for verification.

### Validation Workflow (`pnpm run ci`)
Before a task is complete, all of these MUST pass (`ci` = lint → backend coverage → dashboard → build):
1. `pnpm run lint` (alias of `typecheck`: strict `tsc --noEmit`).
2. `pnpm run test:backend:coverage`.
3. `pnpm run test:dashboard`.
4. `pnpm run build` (server `tsc` + dashboard typecheck + `vite build`).
Before a task is complete, all of these MUST pass (`ci` = quality:guardrails -> audit -> lint -> test:backend:coverage -> test:dashboard -> build).

- Do not validate changes visually with Browser automation Tools unless explicitly told to
---
Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ Docker-backed execution provides:

- Hermetic task workspaces and snapshot-based QA reviews.
- Reusable runtime caches for package managers and provider CLIs.
- Auth-copy support for provider credentials such as `~/.codex`, `~/.claude`, `~/.gemini`, `~/.qwen`, and OpenCode auth.
- Isolated credential mounts for provider auth (such as `~/.codex`, `~/.claude`, `~/.gemini`, `~/.qwen`, and OpenCode) rather than broad workspace root exposure.
- Short-lived execution containers that are cleaned up after runs instead of becoming permanent agent environments.
- Isolated merge-conflict repair and CI autofix flows.
- Startup cleanup for stale containers, workspaces, and preview sessions.
Expand Down Expand Up @@ -289,6 +289,8 @@ start planning sprint work without rebuilding the same agent setup for every CLI

## Documentation

Canonical repository documentation lives in the `docs/` directory, while `docs-web/` serves as the sole publication and reference mirror. The use of a `docs-release/` directory is explicitly forbidden.

- [User quickstart](./docs-web/user/quickstart.md)
- [Installation](./docs-web/user/installation.md)
- [Providers and models](./docs-web/user/providers-and-models.md)
Expand Down Expand Up @@ -329,6 +331,7 @@ Codex, Claude Code, Qwen Code, OpenCode, and Antigravity CLI.

```bash
pnpm run dev
pnpm run dev:server-only
```

Then open `http://localhost:4444`.
Expand All @@ -343,9 +346,11 @@ pnpm start
### Validate locally

```bash
pnpm run quality:guardrails
pnpm run audit
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run test:backend:coverage
pnpm run test:dashboard
pnpm run build
```

Expand Down
14 changes: 7 additions & 7 deletions docs-web/architecture/configuration-resolution.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ After bootstrap, Code UX loads the settings tree from the database. Three tables
For any field, the effective value at sprint scope is:

```
defaults → system → project → sprint
system → project → sprint
```

A field unspecified at higher scopes inherits from lower scopes. The merge is **deep** for object-valued fields (e.g. `aiProvider.providers.codex` only overrides the keys you set, not the whole object).
System settings act as the base (with built-in defaults folded into them). A field unspecified at higher scopes inherits from lower scopes. The merge is **deep** for object-valued fields (e.g. `aiProvider.providers.codex` only overrides the keys you set, not the whole object).

### Where defaults live

Expand All @@ -83,7 +83,7 @@ System settings on a fresh install are the merge of these defaults plus any exte

### Live reload

Settings changes via `manage_code_ux` → `settings` → `patch_*_setting` (or the corresponding REST endpoints) trigger:
Settings changes via `manage_settings` → `patch_*_setting` (or the corresponding REST endpoints) trigger:

- A WebSocket event broadcasting the change.
- Hot-reload of the relevant subscribers (e.g. the orchestrator picks up new `watchLoopIntervalSeconds` on the next cycle).
Expand All @@ -96,9 +96,9 @@ There is no need to restart the process for settings changes.

- `GET /api/projects/:projectId/settings/effective` — merged at project scope.
- `GET /api/projects/:projectId/sprints/:sprintId/settings/effective` — merged at sprint scope.
- `manage_code_ux` → `settings` → `resolve_project_effective` / `resolve_sprint_effective`.
- `manage_settings` → `resolve_project_effective` / `resolve_sprint_effective`.

These return the full merged tree, useful for debugging "why is this setting taking that value?".
These endpoints return an `EffectiveSettingsResponse` which includes both the merged tree (`settings`) and field-level provenance metadata (`sources` mapping each path to `system`, `project`, or `sprint`), useful for debugging "why is this setting taking that value?".

## External hints

Expand Down Expand Up @@ -132,7 +132,7 @@ The default backend is **SQLite** at `~/.code-ux/database.sqlite`. A migration p

## Reset semantics

- **Per-project reset** (`reset_project_settings`) clears the project's override row; effective values revert to `system → defaults`.
- **Per-sprint reset** (`reset_sprint_settings`) clears the sprint's override; effective values revert to `project → system → defaults`.
- **Per-project reset** (`DELETE /api/projects/:projectId/settings` or `reset_project_settings`) clears the project's override row; effective values revert to `system`.
- **Per-sprint reset** (`DELETE /api/sprints/:sprintId/settings` or `reset_sprint_settings`) clears the sprint's override; effective values revert to `project → system`.
- **System reset** (no dedicated action; use `replace_system_settings` with a default tree) requires explicit replacement.
- **Database reset** (`POST /api/system/reset-database`) wipes everything; use only as a last resort.
5 changes: 4 additions & 1 deletion docs-web/architecture/dashboard-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ const routes = [
{ path: "/live", component: LiveSessionPage },
{ path: "/chat", component: ChatPage },
{ path: "/agents", component: AgentsPage },
{ path: "/scheduler", component: SchedulerPage },
{ path: "/memory", component: MemoryPage },
{ path: "/knowledge", component: KnowledgePage },
{ path: "/files", component: FileBrowserPage },
{ path: "/browser", component: BrowserPage },
{ path: "/stats", component: StatsPage },
{ path: "/config", component: SettingsPage },
Expand All @@ -98,7 +101,7 @@ State is managed with a mix of:
- **`@preact/signals`** for global and page-level reactive state.
- **Custom data hooks** wrapping REST + WebSocket subscriptions:
- `useDashboardRuntimeData()` — live execution data.
- `useRealTimeResource()` — generic WebSocket subscription wrapper.
- `useRealtimeResource()` — generic WebSocket subscription wrapper.
- `useProjectData()` — active project / sprint.
- `useSprints()`, `usePreviewSessions()`, `useChatPageData()`, `useSettingsPageState()`, `useMemoryPageData()`, `useOverviewPageData()`, `useExecutionTimeline()`, `useProgressiveList()`.

Expand Down
2 changes: 1 addition & 1 deletion docs-web/architecture/data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ Memories with mismatched `embeddingModelId` are excluded from search; trigger re
| `id` | string | – |
| `endpointKey` | string | Stable client-supplied ID. |
| `displayName` | string | – |
| `role` | enum | `project_manager`/`worker`/`listener`. |
| `role` | enum | `project_manager`/`worker-host`. |
| `transport` | enum | `stdio`/`http`/`internal`. |
| `capabilities` | json | – |
| `status` | enum | `connected`/`disconnected`. |
Expand Down
2 changes: 1 addition & 1 deletion docs-web/architecture/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ It is for contributors and integrators who need to reason about *how* Code UX ma

| # | Page | Topic |
| --- | --- | --- |
| 1 | [System overview](./system-overview.md) | Process model, runtime composition, top-level data flow |
| 1 | [System overview](./system-overview.md) | Container-first process model, runtime composition, top-level data flow |
| 2 | [MCP server](./mcp-server.md) | Tool dispatch, transports, authentication, session lifecycle |
| 3 | [Sprint engine](./sprint-engine.md) | Cycle pipeline, watch loop state machine, dependency resolution, retries |
| 4 | [Virtual workers](./virtual-workers.md) | Provisioning, lifecycle, Docker vs host execution, attention-item handling |
Expand Down
4 changes: 2 additions & 2 deletions docs-web/architecture/system-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Code UX is a single Node process that hosts multiple cooperating services. This
└────────────────────────────────────────────────────────────────────┘
```

The process is started by `src/index.ts``CodeUxServer.run()`. Lifecycle:
The primary CLI/management entrypoint is `src/index.ts`, which loads configuration and starts `CodeUxServer.run()`. `CodeUxServer` wires all backend services. The dashboard/API serves on a configured port (default 4444), while the worker host and Electron shell operate as separate entrypoints. Lifecycle:

1. **Boot settings** — load and migrate the settings DB.
2. **Refresh API key** — pull from CLI / env / settings.
Expand Down Expand Up @@ -112,7 +112,7 @@ Subtask data is *also* persisted as markdown files for portability — see [Spri
## Data flow: a sprint cycle

```
Dashboard click "Orchestrate" MCP client calls manage_code_ux:start
Dashboard click "Orchestrate" MCP client calls grouped tools (e.g., manage_sprints:start) (manage_code_ux is deprecated)
│ │
▼ ▼
POST /api/sprints/.../orchestrate ToolRegistry → sprint-actions.ts
Expand Down
11 changes: 6 additions & 5 deletions docs-web/architecture/virtual-workers.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,11 @@ Per provider, `executionMode` is `DOCKER` (default) or `HOST`.

### DOCKER mode

- Image: `node:24-bookworm` (override via `workers.dockerImage`).
- Image: `node:24-bookworm` (override via `workers.dockerImage`). Images are cached across runs using a setup image cache.
- Mounts:
- The worktree path read-write.
- The provider auth path (e.g. `~/.gemini`) read-only, if `mountAuth: true`.
- The workspace volume (`code-ux.workspace=true`) is mounted read-write.
- Runtime volumes (`code-ux.workspace-runtime=true`) are used for preserving package manager caches and the provider home directory outside of the main workspace.
- Provider credentials are conceptually mounted via dedicated, isolated credential mounts (e.g. `mountAuth: true` builds provider-specific mounts without exposing raw host tokens or keys to the workspace root or command arguments).
- Optional setup script.
- Network: default bridge.
- The CLI runs as the container's default user (root, in the default image).
Expand All @@ -110,7 +111,7 @@ Per provider, `executionMode` is `DOCKER` (default) or `HOST`.

- The CLI runs directly on the host as the Code UX process user.
- No mount; the CLI uses its native auth.
- Faster startup, no Docker dependency, but less hermetic.
- Used *only* as a fallback for specific edge cases (such as degraded CI autofix runs when Docker is unrecoverably unavailable). Docker is the strict default and is required for merge conflict isolation.

## Worktree management

Expand Down Expand Up @@ -194,7 +195,7 @@ Each dispatch records:
- PR URL on success.
- Failure reason.

Visible in the dashboard's **Tasks** detail panel and via `manage_code_ux` → `tasks` → `inspect_run` and `telemetry` → `list_task_dispatches`.
Visible in the dashboard's **Tasks** detail panel and via `manage_tasks` → `inspect_run` and `manage_telemetry` → `list_task_dispatches`.

## Tuning

Expand Down
11 changes: 6 additions & 5 deletions docs-web/developer/building-from-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ codeux --help
```
src/
├── index.ts # CLI entry
├── electron/ # desktop shell entrypoint and policies (does not own orchestration)
├── app/ # lifecycle, dependency factory
├── config/ # CLI flag + env parsing
├── contracts/ # shared types, MCP tool definitions
Expand All @@ -110,11 +111,11 @@ src/
├── integrations/ # Jules API client
├── mcp/ # MCP server, request router, tool handlers
├── repositories/ # settings, agents, memory, project
├── server/ # Express dashboard server, routes, websocket
├── server/ # Express dashboard server (default port 4444), routes, websocket
├── services/ # virtual-worker-service, sprint-markdown-service, etc.
├── shared/ # config search paths, common utils
├── sprint/ # cycle steps (start-ready-tasks, etc.)
└── worker/ # worker-mode entry (reserved)
└── worker/ # worker-host mode entrypoint (separate from main server)

dashboard/
├── index.html
Expand Down Expand Up @@ -149,13 +150,13 @@ tests/
pnpm run typecheck # tsc --noEmit (server)
pnpm run typecheck:dashboard # tsc --noEmit (dashboard)
pnpm run lint # alias for typecheck (no eslint shipped)
pnpm test # vitest run (full suite)
pnpm run test # vitest run (full suite)
pnpm run test:watch # vitest watch mode
pnpm run test:backend # backend only
pnpm run test:dashboard # dashboard only
pnpm run test:coverage # full coverage report
pnpm run test:backend:coverage # backend coverage with threshold gate
pnpm run ci # local CI: guardrails + audit + lint + backend coverage + dashboard tests + build
pnpm run ci # local CI: quality:guardrails -> audit -> lint -> test:backend:coverage -> test:dashboard -> build
pnpm run audit # pnpm audit --audit-level=high
pnpm run smoke-test # node dist/index.js --help
pnpm run dev:server-only # boot just the server from source
Expand Down Expand Up @@ -194,6 +195,6 @@ The CI tag pipeline runs the full build, runs the audit, and publishes to npm.

## Development tips

- Use `pnpm run dev` + `pnpm run dev:dashboard` in two terminals for the fastest iteration loop.
- Use `pnpm run dev` in one terminal (which starts both the server and dashboard watcher) for the fastest iteration loop.
- The MCP stdio server only activates if stdin is not a TTY. To exercise it locally, pipe a JSON-RPC request: `echo '{"jsonrpc":"2.0","id":1,"method":"initialize"}' | node dist/index.js`.
- For one-off MCP HTTP integration tests, the legacy `--mcp-https` flag plus `curl` is the simplest harness.
2 changes: 1 addition & 1 deletion docs-web/developer/http-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This page lists every endpoint, grouped by domain. Path parameters use `:name` n

> **Authentication:** The dashboard REST API is intended for trusted local consumption. It is not authenticated. Bind only to loopback (default) or front it with a reverse proxy when exposing remotely.

> **MCP HTTP gateway** (`--mcp-https`) is a *separate* listener for JSON-RPC and is documented in [MCP server](../architecture/mcp-server.md).
> **MCP HTTP gateway** (`--mcp-http`) is a *separate* listener for JSON-RPC and is documented in [MCP server](../architecture/mcp-server.md).

---

Expand Down
Loading