mirror of
https://github.com/instructkr/claw-code.git
synced 2026-10-17 00:00:05 +08:00
feat(runtime): implement per-session settings override & schema validation (#3346)
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) Co-authored-by: clawdbot <clawdbot@ultraworkers.dev>
This commit is contained in:
1 parent
09f3b366ba
commit
d9d5d5da08
2 files changed
+1324
No files matched your search
@@ -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
Reference in new issue
Block a user