kami
71a73a4fa2
chore(audit): tool path resolution, config file, dead code removal, static analysis cleanup
...
Tool fixes:
- FileWriteTool, FileEditTool: resolve relative paths against workingDir instead of JVM cwd
- FileReadTool: remove allowedPaths restriction — reads are unrestricted
- ShellTool: add workingDir for ProcessBuilder, remove environment().clear(), fail-open when allowedExecutables empty
Config:
- Add [tools] section to config.toml: sandbox_root, working_dir, shell_allowed_executables, default_system_prompt_path
- Three-level resolution: env var > config file > hardcoded default
- OrchestrationConfig sandboxRoot and defaultSystemPromptPath now sourced from CorrexConfig
- Single defaultOrchestrationConfig in ServerModule, shared by SessionRoutes and GlobalStreamHandler
Dead code:
- Delete EventTypes.kt — orphaned string constants duplicating serialization annotations
Static analysis:
- Remove 10 unused imports across 9 files
- Remove redundant return in ReplayOrchestrator
- Remove redundant suspend from ApprovalCoordinator.handleResponse
- Fix unreachable InputMode.None branch in InputBar
- Enable full detekt rule sets in detekt.yml
2026-05-19 12:48:47 +04:00
kami
c0efa0ef03
fix(kernel+infra): tool approval gate and executor cleanup
...
- SessionOrchestrator: wire T2/T3/T4 approval gate before tool execution;
emit OrchestrationPausedEvent/ApprovalRequestedEvent, await decision,
return rejection as ERROR context entry so LLM sees the denial;
propagate tool ERROR entries as StageExecutionResult.Failure
- SandboxedToolExecutor: remove dead code and simplify
- InfrastructureModule: minor wiring cleanup
- LlamaCppInferenceProvider / build.gradle: related build fixes
2026-05-19 00:05:08 +04:00
kami
5c3a8fda63
feat(core:kernel): tool call dispatch loop, tool definitions wiring, sandboxRoot and defaultSystemPromptPath in config
2026-05-18 21:39:50 +04:00
kami
15d1e09c44
feat(tools): add description and parametersSchema to Tool interface; wire FileWriteTool materialization
2026-05-18 21:39:36 +04:00
kami
fa9af002a1
feat(core:validation): ArtifactPayloadValidator for file_written and process_result; make Validator suspend
2026-05-18 21:39:13 +04:00
kami
a5dc983a57
feat(workflow): typed produces slots — StageConfig uses TypedArtifactSlot, TOML accepts {name, kind} objects
2026-05-18 21:39:08 +04:00
kami
c2267a58a0
feat(core:inference): add ResponseFormat, ToolDefinition, ToolCallRequest; extend InferenceRequest with tools and responseFormat
2026-05-18 21:38:50 +04:00
kami
325810934a
feat(core:artifacts): ArtifactKind interface, registry, built-in kinds, and MaterializingArtifactWriter
2026-05-18 21:38:44 +04:00
kami
219e2c762e
feat(cas): content-addressed artifact store (steps 1–8)
...
New core:artifacts-store interface + infrastructure/artifacts-cas
implementation: segment files + SQLite index, Blake3 hashing,
group-commit fsync via flushBefore, recovery tail-scan, manual
compactor, and oldest-first disk-cap evictor.
Inference events now carry promptArtifactId / responseArtifactId;
orchestrators put bytes before emitting. SqliteEventStore wraps
its txn in artifactStore.flushBefore so segment data is fsynced
before the event commit, making the crash window non-corrupting
(TailScanner re-indexes orphan tail records on reopen).
Compactor and evictor are mutually exclusive via maintenanceMutex.
Step 9 (cloud sync) deferred to a later epic.
See docs/reviews/2026-05-18-cas-steps-1-8-review.md for the final
review.
2026-05-18 12:22:38 +04:00
kami
7d46f46f01
fix(server): event capturing and necessary logic for smoke test.
2026-05-17 03:21:42 +04:00
kami
b95135eb3b
refactor(tui): event-loop foundation — actions, reducers, effects, Panel
...
Tasks 1.1–3.3 of docs/plans/2026-05-17-tui-refactor.md:
- Mosaic 0.13 → 0.18; Kotlin 2.0.21 → 2.2.10 (required by Mosaic).
Fix MaxLineLength regressions in core/kernel orchestration logs.
- Input: drop raw System.in reader and ANSI escape parser. Wire
Modifier.onKeyEvent at root; MosaicKeyMapper → KeyResolver → Action.
- State: split TuiState into Connection/Sessions/Input/Approval/Provider
slices. Add InputMode.SteeringNote; delete handleSteer/System.console.
- Reducers: pure RootReducer composes slice reducers returning
(state, List<Effect>). Effect is sealed (SendWs, Quit). Single
dispatch(action) point in TuiApp; one coroutine drains effects.
- TuiWsClient now exposes messages/connection SharedFlows; suspend
callbacks gone. ConnectionEvent sealed type added.
- Rendering: Panel(title){…} composable with LocalTerminalSize
composition local; drop BOX_WIDTH and hand-padding from every
component. Poll stty size every 500ms.
- Tests: KeyResolver (18) + 5 reducer suites (37). 55 total in :apps:tui.
Pending tasks 4.1–5.2 tracked in
docs/plans/2026-05-17-tui-refactor.progress.md.
2026-05-17 03:21:26 +04:00
kami
f77efce10b
debt(pre-router): resolved most of the technical debt that was noted while finishing epic-12 and epic-13.
2026-05-17 03:21:26 +04:00
kami
2207a37549
epic-13: add cli and tui entry point, finish epic.
2026-05-17 03:20:43 +04:00
kami
ce723afc8b
refactor(imports): optimize imports
2026-05-17 03:19:57 +04:00
kami
c77277af0b
epic-12: after epic audit and init commit
2026-05-17 03:19:39 +04:00