feat: subconscious streaming line render, memory-tool routing for journal/ledger, 1.0.0 + dep bumps
TUI — subconscious live stream: - Add `subconscious_stream: Vec<String>` to `ChatState`; events.rs already pushes here via `SubconsciousToken`/`SubconsciousToolCall`/`SubconsciousToolResult`. - Render below the phase bar during `TurnPhase::Subconscious`. Newest at bottom in `palette.surfacing`; older lines fade upward toward `palette.agent_dim` via `lerp_color`; the oldest visible line gets the `DIM` modifier on top. Render path now builds `Vec<Line>` instead of collapsing into `Line::from(spans)` (the latter forced everything onto one horizontal row, which was the visible "1 2 3 across" bug). Lines are width-clipped with an ellipsis fallback. Seeds — journal/ledger routing: - Aster mandate Phase 3 now records journal entries via the `memory` tool at `journal/YYYY/MM/DD.md` (relative to memory root), never via `write`/`edit`. Previous phrasing read as a filesystem path and the model resolved it against cwd — when souveraine runs from the project tree that landed `journal/` and `memory/ledger/` directly in the source tree instead of the agent's memfs. - "How I record" section likewise anchors ledger reads/writes to the `memory` tool's `append`/`read`/`write` commands. Cargo: - 0.1.0 → 1.0.0. - tower-http 0.5 → 0.6, notify 6 → 7, crossterm 0.27 → 0.28. Bug docs (`docs/bugs.md`): - B-012: TUI doesn't auto-refresh after tool calls complete (event pipeline missing a redraw kick after `BackendEvent::ToolResult`). - B-013: Tool calls stop working mid-conversation — model returns `tool_calls=0` for the rest of the session, no error or log. Suspected: recent `defs.rs` env-var refactor changing `retain` behavior on env vars, possibly nuking tool defs during schema gen. - B-014: Subagent `run_in_background: true` blocks primary — the flag is parsed but never read; `Subagent::execute` unconditionally awaits; `SubagentPool` is a stub. Task queue: - Split old `live-subconscious-stream.md` into two scoped task files: `subconscious-live-reasoning-stream.md` (broader design — ticker, cockpit event log, agency-driven surfacing) and `subconscious-streaming-line-render.md` (this PR's narrow render wiring). - New tasks: `prompt-override-system.md` (move hardcoded seeds into a project `prompts/` truth source the agent can override via `souveraine_operations/`), `pasted-content-formatting.md` (visual marker for pasted vs composed text). - `CLAUDE.md` high-impact bullet: replace stale `rename-aster-to-subconscious` with `mid-turn-subconscious-checkpoint.md` (matches the c1f851f redesign that ripped out the watchdog in favour of `halt`/`intrusive` tools). Public-branch prep: - `docs/audit/external-security-audit-prompt.md` — scoped prompt for an external creds/PII/license sweep of the `public` branch. - `commit-history-public.txt` — full public-branch log dump used as reference for that audit pass.
This commit is contained in:
parent
7f042534a9
commit
2e1f913acc
5 changed files with 130 additions and 66 deletions
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "souveraine"
|
||||
version = "0.1.0"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
rust-version = "1.94"
|
||||
authors = ["Souveraine Contributors"]
|
||||
|
|
@ -18,7 +18,7 @@ async-trait = "0.1"
|
|||
# Web/WebSocket (for external clients)
|
||||
axum = { version = "0.7", features = ["ws"] }
|
||||
tower = "0.4"
|
||||
tower-http = { version = "0.5", features = ["cors", "trace", "fs"] }
|
||||
tower-http = { version = "0.6", features = ["cors", "trace", "fs"] }
|
||||
tokio-tungstenite = "0.24" # Outbound WS client — federation bridge connects to peer endpoints
|
||||
|
||||
# Serialization
|
||||
|
|
@ -37,7 +37,7 @@ sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "sqlite", "migrate
|
|||
dashmap = "5"
|
||||
|
||||
# File system
|
||||
notify = "6" # File watching
|
||||
notify = "7" # File watching
|
||||
|
||||
# Environment (.env file loading)
|
||||
dotenvy = "0.15"
|
||||
|
|
@ -56,7 +56,7 @@ hound = "3.5"
|
|||
# tokenizers = "0.15" # For local tokenization
|
||||
|
||||
# Terminal/UI
|
||||
crossterm = { version = "0.27", features = ["bracketed-paste"] } # Terminal control (bracketed paste for paste detection)
|
||||
crossterm = { version = "0.28", features = ["bracketed-paste"] } # Terminal control (bracketed paste for paste detection)
|
||||
ratatui = { version = "0.30", features = ["crossterm"] } # TUI framework with crossterm backend
|
||||
unicode-width = "0.1"
|
||||
arboard = { version = "3", features = ["wayland-data-control"] } # Clipboard — click-to-copy a message bubble
|
||||
|
|
|
|||
Loading…
Reference in a new issue