Merge origin/master into feat/remote-host-wake

Resolves CLAUDE.md count tables (route counts recounted on the merged
tree: 235 handlers, sessions 37) and keeps both the host-wake and the
reboot-restore banner in index.html.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QdGP4jUTjc9J2RYYykDrCG
This commit is contained in:
Randalix
2026-09-18 22:20:41 +02:00
co-authored by Claude Opus 5
77 changed files with 5422 additions and 368 deletions
+20
View File
@@ -58,6 +58,24 @@ export type SessionMode =
| 'deepseek'
| 'omp';
/**
* Who owns a session's name. `placeholder`: Codeman's own `w<n>-<case>` (or no
* name at all), still eligible for auto-naming. `auto`: titled after its first
* prompt (`w<n>-<case>: <title>`), which happens once. `manual`: set by a
* person; auto-naming never touches it.
*/
export type SessionNameSource = 'placeholder' | 'auto' | 'manual';
/** Options for `Session.write()` / `Session.writeViaMux()`. */
export interface SessionWriteOptions {
/**
* The bytes were typed by a person, or sent by an agent on their behalf
* (browser keystrokes, `POST /api/sessions/:id/input`). Only such input can
* name a tab; Ralph, respawn, cron and approval writes leave this unset.
*/
fromUser?: boolean;
}
export type RemoteCommandMode = Extract<
SessionMode,
'shell' | 'claude' | 'opencode' | 'codex' | 'gemini' | 'antigravity' | 'pi' | 'grok' | 'deepseek' | 'omp'
@@ -640,6 +658,8 @@ export interface SessionState {
lastActivityAt: number;
/** Session display name */
name?: string;
/** Who owns the name (see `SessionNameSource`); absent on states persisted before auto-naming existed. */
nameSource?: SessionNameSource;
/** Session mode */
mode?: SessionMode;
/** Auto-clear enabled */