Skip to content

Commit 06bb4ea

Browse files
hyperpolymathclaude
andcommitted
feat: LlmCoding panel + Burble integration + ReScript 12 fixes
LLM Coding panel (first Gossamer-target panel): - LlmCodingModel.res: session, lock, resource, task, permission types - LlmCodingEngine.res: state colours, health checks, lock conflicts - LlmCodingCmd.res: Tauri invoke bridge for session management - LlmCoding.res: TEA view with session cards, resource bars, action gating - Rust backend: spawn Konsole+Claude, SIGSTOP/SIGCONT/SIGTERM with PID validation, coordination directory with 0600 permissions - Registered in PanelSwitcherModel, PanelRegistry, View, Model, main.rs Burble voice integration: - BurbleModel.res: voice state types + TEA messages - BurbleEngine.res: pure state transitions, workspace profile - BurbleCmd.res: Tauri invoke bridge for huddle management - Trustfile updated with LLM_CODING_SECURITY section ReScript 12 migration fixes (pre-existing build errors): - Replace {j|...|j} syntax with regular strings (55 occurrences) - Fix Int.bitwiseXor/bitwiseAnd/shiftRight (use %raw JS) - Fix String.indexOf option->int return type change - Fix forward reference ordering in VqlModel.res - Fix type rec / and syntax for mutually recursive types Security: - PID validation before all libc::kill calls - All .unwrap() removed from llm_coding module - File permissions 0600 on coordination files - SAFETY comments on all unsafe blocks - Trustfile updated with process management policy Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c60a04e commit 06bb4ea

21 files changed

Lines changed: 2436 additions & 1430 deletions

.machine_readable/contractiles/trust/Trustfile.a2ml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,46 @@ deployment:
444444
K9 deployment components at Hunt trust level for the collaboration
445445
server. Layout presets remain at Yard level (pure config, no I/O).
446446

447+
---
448+
### [LLM_CODING_SECURITY]
449+
description: |
450+
The LLM Coding panel spawns and manages external Claude/LLM processes.
451+
This section defines the security boundaries for process management.
452+
453+
process_management:
454+
spawn:
455+
method: "konsole -e claude"
456+
working_dir: "user-specified, validated against allowed repos"
457+
task_file: "~/.claude/coordination/tasks/<session-id>.md"
458+
permissions: "0600 (owner only)"
459+
signals:
460+
validation: "PID checked against /proc/<pid>/comm before any signal"
461+
allowed_targets: ["konsole", "claude", "bash", "zsh", "node", "deno"]
462+
operations: ["SIGSTOP (freeze)", "SIGCONT (thaw)", "SIGTERM (kill)"]
463+
coordination:
464+
directory: "~/.claude/coordination/"
465+
subdirs: ["sessions/", "locks/", "tasks/", "messages/", "completed/"]
466+
file_permissions: "0600 (owner read/write only)"
467+
lock_type: "advisory (filesystem-based)"
468+
469+
resource_limits:
470+
per_session:
471+
max_memory_mb: 4096
472+
max_cpu_percent: 80
473+
max_subagents: 3
474+
enforcement: "resource-guardian.service monitors /proc/<pid>/status"
475+
escalation: "warn → freeze (SIGSTOP) → thaw (auto on recovery) → kill (last resort)"
476+
477+
permission_gating:
478+
description: "Destructive actions require explicit supervisor approval via panel UI"
479+
gated_actions:
480+
- "git push (any remote)"
481+
- "git force push"
482+
- "file/directory deletion"
483+
- "CI/CD workflow modification"
484+
- "GitHub PR/issue creation"
485+
policy: "deny by default, explicit approve/deny per action"
486+
447487
---
448488
### [SIGNATURE_BLOCK]
449489
primary:

src-tauri/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ walkdir = "2"
3838
regex = "1"
3939
libc = "0.2"
4040
which = "7"
41+
uuid = { version = "1.22.0", features = ["v4"] }
4142

4243
[dev-dependencies]
4344
tokio = { version = "1", features = ["macros", "rt"] }

0 commit comments

Comments
 (0)