~/.comis/config.yaml by hand. Click Config in the sidebar to open it.
Who it’s for: operators who want a guided UI with form controls and validation, plus a safety net (git history + rollback) for every change.
How saves work
Saves are persistent and atomic. When you click Save, the dashboard sends aconfig.patch (single key) or config.apply (whole section) RPC to the daemon. The daemon:
- Validates the patch against the full config schema (Zod).
- Deep-merges the change into your local YAML file (last entry of
COMIS_CONFIG_PATHS, typically~/.comis/config.yaml). - Writes atomically (temp file + rename, mode
0o600). - Records a git commit in the config history (best-effort).
- Schedules a
SIGUSR2daemon restart (200 ms after the response flushes) so every subsystem picks up the new config consistently.
- Changes survive a restart — they are written to your YAML file before the response returns.
- A brief daemon restart follows every save (sessions, channels, and queues reconnect on its own).
- Validation failures abort the save — nothing is written, and the in-memory config is unchanged.
- Each change is logged to the History tab and to the audit log.
Tabs
The Config Editor has three top-level tabs:- Configuration
- Gateway
- History
The main configuration editing tab. A section navigation sidebar on the left lists the available config sections. Click a section to load its settings into the editor area.Two modes are available:
- Form — Shows controls generated from the config schema. Change the values you need, review the diff, then click Apply Changes.
- Schema — A read-only reference view showing the structure and validation rules for the selected section. Useful for understanding which fields exist, what types they expect, and constraints like minimum or maximum values.
config.apply; it does not provide a raw YAML editor.Common Tasks
End-to-end: change a key, see it take effect
This walkthrough demonstrates that saves are persistent.1
Open the editor
Click Config in the sidebar.
2
Pick a section
Click gateway in the section list. The Form sub-mode loads with all gateway fields.
3
Edit a value
Find the rateLimit field and change
rateLimit.requestsPerMinute from 60 to 120.4
Save
Click Apply Changes. The dashboard reports whether the section was accepted. The daemon schedules a restart after a successful write.
5
Verify on disk
Open
~/.comis/config.yaml in any text editor. The new requestsPerMinute: 120 line is there. The change persisted.6
Verify in History
Switch to the History tab. The latest entry shows your rate limit change with a SHA, timestamp, and diff button.
Other common tasks
1
Edit individual gateway settings
Switch to the Gateway tab for fast single-field edits (rotate a token, add a CORS origin, tweak TLS). Each field saves on its own.
2
Roll back a bad change
Switch to History, click the entry from before the change, click Rollback. The daemon writes the older config back, commits the rollback, and restarts.
3
Discard unsaved edits
Navigate away without applying, or reload the page, to discard pending form changes. Saved changes can be reversed from History.
The route is
#/config. RPC methods used: config.read, config.patch, config.apply, config.history, config.diff, config.rollback, config.schema. All require admin trust on the gateway token. See JSON-RPC reference for the wire format.Related Pages
Configuration Guide
Learn how to write and manage your permanent config.yaml configuration file.
Security View
Manage security settings, API tokens, and approval policies.
