feat(session): persist model tier overrides per session
Store per-session config in SQLite and route /model and /reset through command fast-paths so channel sessions keep independent model selection across reconnects and restarts.
This commit is contained in:
@@ -108,6 +108,15 @@ const skillsLoadSchema = z.object({
|
||||
watch_debounce_ms: z.number().min(10).max(10_000).default(250),
|
||||
}).default({});
|
||||
|
||||
const skillsShellRunnerGovernanceSchema = z.object({
|
||||
/** Responsible owner for shell-runner allowlist decisions. */
|
||||
owner: z.string().min(1).optional(),
|
||||
/** Review cadence for allowlist + rollout status checks. */
|
||||
review_cadence_days: z.number().min(1).max(90).default(7),
|
||||
/** Minimum success rate required before broader rollout. */
|
||||
promotion_min_success_rate: z.number().min(0).max(1).default(0.9),
|
||||
}).default({});
|
||||
|
||||
const skillsSchema = z.object({
|
||||
/** Directory for user-created workspace skills. */
|
||||
workspace_dir: z.string().optional(),
|
||||
@@ -115,6 +124,14 @@ const skillsSchema = z.object({
|
||||
managed_dir: z.string().optional(),
|
||||
/** Directory for bundled skills shipped with Flynn. */
|
||||
bundled_dir: z.string().optional(),
|
||||
/** Global policy gate for installer command execution. */
|
||||
installation_execution: z.enum(['disabled', 'enabled']).default('disabled'),
|
||||
/** Allow use of the shell runner for installer commands. */
|
||||
allow_shell_runner: z.boolean().default(false),
|
||||
/** Allowlist patterns for shell runner commands (supports '*' wildcard). */
|
||||
shell_runner_allowlist: z.array(z.string()).default([]),
|
||||
/** Governance controls for shell-runner rollout decisions. */
|
||||
shell_runner_governance: skillsShellRunnerGovernanceSchema,
|
||||
/** Skills watcher settings. */
|
||||
load: skillsLoadSchema,
|
||||
}).default({});
|
||||
|
||||
Reference in New Issue
Block a user