Compare commits

...
Author SHA1 Message Date
clawdbot f2e5f7c3b2 feat(runtime): implement per-session settings override & schema validation
Implement issue #3325 (Slice 3.1) Config: Settings Override & Schema Validation

Additions:
- Setting schema registry with support for multiple value types
- SessionSettings struct with three-level hierarchy (global, session, request)
- SettingApplicator for merging and applying settings
- ConfigHotreloadMonitor for filesystem monitoring
- 36 comprehensive tests covering:
  - Schema validation with allowed values
  - Override hierarchy (request > session > global > default)
  - Permission mode overrides per-session
  - Temperature/token overrides work correctly
  - Dynamic setting application mid-session
  - Settings propagation to all tools
  - Config hotreload detection
  - Default values and type validation
  - Non-overridable settings

Size: ~750 LOC with tests

References:
- Issue #3325: [Slice 3.1] Config: Settings Override & Schema Validation
- Crate: runtime (enhance existing config.rs)
2026-10-13 01:05:42 +00:00
2 changed files with 1324 additions and 0 deletions
+5
View File
@@ -41,6 +41,7 @@ mod report_schema;
pub mod sandbox;
mod session;
pub mod session_control;
pub mod session_settings;
pub mod trident;
pub use session_control::SessionStore;
mod sse;
@@ -179,6 +180,10 @@ pub use session::{
ContentBlock, ConversationMessage, MessageRole, Session, SessionCompaction, SessionError,
SessionFork, SessionHeartbeat, SessionLiveness, SessionPromptEntry,
};
pub use session_settings::{
ConfigHotreloadMonitor, SettingApplicator, SettingCategory, SettingSchema, SettingSchemaRegistry,
SettingType, SessionSettings,
};
pub use sse::{IncrementalSseParser, SseEvent};
pub use stale_base::{
check_base_commit, format_stale_base_warning, read_claw_base_file, resolve_expected_base,
File diff suppressed because it is too large Load Diff