mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-03 22:19:42 +02:00
Finishes #376. The contributed keystroke tracker sat on the raw byte stream and named tabs wrong five ways (every prompt, every write path, a bare Esc eating the next prompt's first character, pasted newlines as Enter, any CSI clearing the draft) and replaced the whole name, which dropped the case from the tab and reset the w<n> counter. This lands the feature with each of those closed: - First prompt means the first: applyAutoName() flips a placeholder to `auto` whether or not the string changed. nameSource is now the tri-state placeholder | auto | manual; the name setter is the only manual path. - Only user-originated input counts: write()/writeViaMux() take SessionWriteOptions.fromUser, set by the browser WS path and POST /input only, so Ralph, respawn, cron, approvals and the trust-dialog keys can never name a tab. A startMode 'shell' CLI never feeds the tracker (a capability, not an id check); the send-key route feeds trackUserInput() because its line feed bypasses the session. - Prefix form `w3-case: title`: parseSessionPrefix() already renders it as the title with the prefix in the tooltip and the next-session counter still matches it. Composed within MAX_SESSION_NAME_LENGTH. - Tracker rules per key: bare Esc resolves at chunk end; mouse/focus reports, Tab, cursor keys, Shift+Tab are no-ops; Up/Down and Ctrl+P/N/R taint the draft so Enter submits nothing rather than a fragment; bracketed-paste newlines and Ctrl+J / Shift+Enter join with one space; the draft keeps its head past 8192 code points; an escape past 64 bytes is abandoned. - Title: slash commands by shape (a path is a prompt), `!` escapes refused, first sentence only past 8 code points ("e.g." is not a title), 72 code points on a word boundary. - Synced `autoNameSessions` setting, default OFF (the prompt reaches mux-sessions.json, session:updated and /api/search), App Settings -> Appearance -> Tabs, read fresh per prompt after the eligibility check. Tests: test/session-auto-name.test.ts (tracker, title, composition, ownership, emit gating), the wiring test (once, prefix, setting off, manual protected), test/routes/session-name-routes.test.ts (PUT /name flips to manual and persists). Verified live on an isolated instance: API and browser-typed prompts name the tab, a second prompt does not, shells and renamed tabs are untouched, nameSource survives a restart. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
175 lines
11 KiB
Markdown
175 lines
11 KiB
Markdown
# Settings Reference
|
|
|
|
Two settings surfaces, and the rule that explains why a setting you changed on your laptop
|
|
did not follow you to your phone.
|
|
|
|
| Surface | Scope | Opened from |
|
|
| ------------------- | ------------------------------ | ---------------------------- |
|
|
| **App Settings** | Global, this Codeman install. | The header gear. |
|
|
| **Session Options** | One session. | The session's tab. |
|
|
|
|
App Settings is a single scrolling document with a rail acting as a table of contents;
|
|
clicking a rail entry scrolls rather than switching. Session Options genuinely switches
|
|
panels.
|
|
|
|
## Per-device versus synced
|
|
|
|
Some settings live on the server and follow you to every device. Others are stored in the
|
|
browser and stay put. This is deliberate, not an oversight: your phone wants a different
|
|
font size, a different keyboard bar, and a different set of header buttons than your
|
|
desktop.
|
|
|
|
| Category | Examples |
|
|
| ----------------------- | ------------------------------------------------------------------------------- |
|
|
| **Per-device, local** | Skin, WebGL renderer, local echo, CJK input, extended keyboard bar, File Viewer and Cron header buttons. Never sent to the server at all. |
|
|
| **Per-device policy** | Most `show*` toggles, plan usage chip, language. Stored server-side, but a device only takes the server value when it has no local one of its own. |
|
|
| **Synced** | Models, effort, CLI options, notification preferences, voice settings, display name, the agent skill and approvals toggles. |
|
|
|
|
The practical rule: **appearance and input are per device, behaviour is shared.** If a change
|
|
did not follow you, it is in one of the first two rows, and you change it again on that
|
|
device.
|
|
|
|
## App Settings
|
|
|
|
### Updates
|
|
|
|
Current version, a manual check, and the in-app updater. Covers git-clone installs
|
|
supervised by systemd or launchd; npm installs report as non-updatable. See
|
|
[Running As A Service](Running-As-A-Service).
|
|
|
|
### Terminal & Input
|
|
|
|
| Setting | Default | Notes |
|
|
| ----------------------------- | -------------------- | --------------------------------------------------------------------- |
|
|
| Local Echo | On for touch devices | Paints keystrokes locally and flushes on Enter. See [Input And Voice](Input-And-Voice). |
|
|
| CJK Input | Off | IME composition through a dedicated text field. |
|
|
| Extended Keyboard Bar | Per device | Which accessory bar phones get. Shell sessions override it while they are active. |
|
|
| Wheel Scrolls Local History | Off | Keeps the wheel on the local buffer instead of forwarding it to the CLI. |
|
|
| Auto Copy Selection | Off | Copies highlighted terminal text to the clipboard the moment you finish selecting it. Ctrl+C still copies on demand. |
|
|
| WebGL Renderer | On | With a GPU-stall watchdog that falls back to DOM rendering. |
|
|
| Gesture Control | Off | Camera hand tracking. Also needs `CODEMAN_GESTURE=1` on the server. |
|
|
|
|
### Header & Panels
|
|
|
|
Chips for every optional header control, with a live preview of the resulting header:
|
|
|
|
Run, Font Size, System Stats, Redraw Terminal, Response Viewer, Away Digest, Session
|
|
Manager, Attachments, File Viewer, Multi-monitor, Plan Usage, Lifecycle Log, Monitor,
|
|
Project Insights, File Browser, Subagents, Approvals Inbox, Read My Mind, Ultracode Agents,
|
|
Ultracode Windows, Cron.
|
|
|
|
Most default to off. The stock desktop header is system stats, File Viewer, and the gear.
|
|
New header controls never appear on phones.
|
|
|
|
This section also holds background-agent tracking, including whether to track agents for
|
|
every session or only the active tab.
|
|
|
|
### Appearance
|
|
|
|
| Setting | Notes |
|
|
| ---------------------- | ----------------------------------------------------------------------------------------- |
|
|
| Skin | Theme palettes, light ones included. Applied before first paint, so no flash of the wrong theme. |
|
|
| Entrance Animations | Per-surface animation styles for tabs, terminals, windows, and lineage lines. All default to the legacy no-animation behaviour. |
|
|
| Display Name | Your name in the UI. Cosmetic only; it never renames the package, CLI, API, or storage. |
|
|
| Interface Language | English or Simplified Chinese. Per device. |
|
|
| Session List Layout | Header tab strip (default) or a collapsible left sidebar. See [The Dashboard](The-Dashboard#session-list-layout). |
|
|
| Tall Tabs | Taller tab strip. |
|
|
| Pop-out Button on Tabs | Adds the detach control to tabs, with a per-tab override. |
|
|
| Spawn Lineage Lines | Arcs from a parent tab to sessions it spawned. Desktop only, on by default. |
|
|
| Auto-name Sessions | Titles a new tab after its first prompt, keeping the case prefix (`w3-myapp: fix the login redirect`). Synced, off by default. See [The Dashboard](The-Dashboard#automatic-session-names). |
|
|
| Overview Home Screen | The phone home screen. On by default. |
|
|
|
|
### Models
|
|
|
|
Claude model cards, the 1M context window switch, and the thinking effort segment. The cards
|
|
and the switch compose into one model choice, so there is no separate "which one wins"
|
|
question.
|
|
|
|
Model and effort are both **soft defaults**: the model is written into the case's
|
|
`.claude/settings.local.json` and effort is passed at start, so `/model` and `/effort`
|
|
inside a session override them at any time.
|
|
|
|
### Agents & CLIs
|
|
|
|
| Setting | Notes |
|
|
| -------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
| Startup Mode | Claude's permission mode for new sessions. Default skips prompts; `auto` uses Anthropic's classifier-guarded mode; `normal` prompts; or give an explicit allowed-tools list. |
|
|
| Allowed Tools | The list used by the explicit mode. |
|
|
| Ralph / Todo Tracker | Enables the Ralph loop surfaces. |
|
|
| Agent Teams | Experimental teams. Also needs the CLI's own environment flag. |
|
|
| Codeman Agent Skill | Injects the agent skill into new Claude sessions per case. Off by default. See [Driving Codeman From An Agent](Driving-Codeman-From-An-Agent). |
|
|
| Remote auto-reconnect | Reattaches dropped remote SSH sessions. On by default. |
|
|
| Nice priority / value | Runs agent processes at a lower CPU priority. |
|
|
| Bypass approvals and sandbox | Pi's project trust. Read [Agent CLIs](Agent-CLIs) before enabling. |
|
|
| Animated status effects | Cosmetic. |
|
|
|
|
### Notifications
|
|
|
|
Master toggle, browser notifications, push subscription, audio alerts, and the idle
|
|
threshold that decides when a quiet session counts as needing you. See
|
|
[Notifications And Approvals](Notifications-And-Approvals).
|
|
|
|
### Voice
|
|
|
|
Active provider and the engine behind it, insert mode, language, domain keywords to bias
|
|
recognition, the Deepgram API key, and the opt-in switch for transcribing through this
|
|
server's Claude login, with its live credential status. See
|
|
[Input And Voice](Input-And-Voice).
|
|
|
|
### Shortcuts
|
|
|
|
Rebinding for the shortcut registry. See [Keyboard Shortcuts](Keyboard-Shortcuts).
|
|
|
|
### System
|
|
|
|
`CLAUDE.md` template for new cases, default working directory, the image watcher, and
|
|
Cloudflare tunnel controls including the tunnel and upload URLs. In multi-user mode, the
|
|
**Users** administration entry is injected here.
|
|
|
|
## Session Options
|
|
|
|
Per session, from the tab.
|
|
|
|
| Panel | Contains |
|
|
| ---------------- | ------------------------------------------------------------------------------------------- |
|
|
| **Respawn** | Auto-resume on usage limit, the respawn cycle configuration, presets, duration. See [Keeping Agents Running](Keeping-Agents-Running). |
|
|
| **Session** | Name, working directory, environment overrides, per-tab pop-out override. |
|
|
| **Ralph / Todo** | Loop configuration, iteration and todo caps, circuit breaker reset. See [Autonomous Loops](Autonomous-Loops). |
|
|
| **Summary** | What this session has done: tokens, activity, run summary. |
|
|
|
|
Panels that only make sense for Claude are hidden for other run modes rather than shown and
|
|
failing.
|
|
|
|
## Environment variables
|
|
|
|
Some things are configured before the server starts, not in the UI:
|
|
|
|
| Variable | Effect |
|
|
| ----------------------------------- | ---------------------------------------------------------------------- |
|
|
| `CODEMAN_PORT` | Listen port. |
|
|
| `CODEMAN_HOST` | Bind address. Loopback by default. |
|
|
| `CODEMAN_PASSWORD` / `CODEMAN_USERNAME` | HTTP Basic credentials. Username defaults to `admin`. |
|
|
| `CODEMAN_ALLOWED_HOSTS` | Extra Host and Origin allowlist entries for a reverse proxy. |
|
|
| `CODEMAN_INSTANCE` | Scopes the data directory and tmux socket together. Required for a second instance. |
|
|
| `CODEMAN_MULTIUSER` | Enables multi-user mode. |
|
|
| `CODEMAN_GESTURE` | Makes gesture control available to be enabled. |
|
|
| `CODEMAN_DOCKER_BRIDGE_HOOKS` | Lets in-container hooks reach the host on a loopback bind. |
|
|
| `CODEMAN_FILE_PICKER_ROOTS` | Extra roots for the path picker. |
|
|
| `CODEMAN_ALLOW_UNAUTHENTICATED_NETWORK` | Acknowledges exposing the server with no password. |
|
|
|
|
## Gotchas
|
|
|
|
- **A setting that did not sync is per device.** Change it again on that device.
|
|
- **The plan usage chip and its telemetry exporter are one setting.** Enabling the chip
|
|
without the exporter would leave it blank forever, so it is deliberately not separable.
|
|
- **Toggling a header button does nothing on a phone.** Phones deliberately ignore most of
|
|
the header chips.
|
|
- **Enabling a feature does not retroactively configure existing sessions.** The agent skill
|
|
injection, for instance, applies at session creation.
|
|
|
|
## Read next
|
|
|
|
- [The Dashboard](The-Dashboard) - what each control does once visible.
|
|
- [Keeping Agents Running](Keeping-Agents-Running) - the Respawn panel in depth.
|
|
- [Agent CLIs](Agent-CLIs) - model, effort, and permission modes.
|