docs: retire the task queue's dead branches
Twelve completed or superseded task records leave the live queue; the byte-identical rename duplicate is removed.\n\nThe authority and somatic source records now point at SAF, while tasks 33, 48, 49, 53, 60, and 76 say what is actually left.
This commit is contained in:
parent
7fc623c598
commit
f5122cb59d
27 changed files with 121 additions and 114 deletions
|
|
@ -1,5 +1,10 @@
|
|||
# Device state machine — unified design
|
||||
|
||||
> **Historical design and hardware audit.** The living architecture is now
|
||||
> `~/Projects/souveraine/saf/authority/02-device-state.md`, with the shared
|
||||
> evidence contract in `saf/nervous/02-belief.md`. This file retains the full
|
||||
> chronology, measurements, and rule derivations.
|
||||
|
||||
**Status:** actuating on hardware since 2026-07-25. **Created:** 2026-07-24.
|
||||
|
||||
`b4b30b1` landed the shape: the §2 enum (all 8 variants), a 20-pair
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
# Session authority — doctrine
|
||||
|
||||
> **Historical doctrine and audit record.** The living architecture is now
|
||||
> `~/Projects/souveraine/saf/authority/01-session.md`. Keep the detail here for
|
||||
> provenance and the decisions it records; update SAF when the architecture
|
||||
> changes.
|
||||
|
||||
The concepts behind the session/trust work, locked down so they stop living in
|
||||
chat logs. This is *why*; `SESSION-TRUST-ARCHITECTURE.md` is the contract and
|
||||
`TRUST-BOUNDARY-MATRIX.md` is the enforcement status. Where this and the code
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
# HANDOFF — 2026-08-16, the gesture and the transport
|
||||
|
||||
> **Archived 2026-08-17.** Motion and transport truth moved to
|
||||
> `souveraine/saf/surface/01-motion.md`; session boot ownership moved to
|
||||
> `saf/surface/02-session-start.md`; the compositor defects remain in TASK-53
|
||||
> and package/commission cleanup in TASK-76. The commit counts below are the
|
||||
> session's historical state, not current delivery status.
|
||||
|
||||
Session ran from a black screen on boot to the multitasking tray. Everything
|
||||
below is on blueline and measured there unless it says otherwise.
|
||||
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
# Felt-State Architecture
|
||||
|
||||
> How a sovereign agent inhabits a body — pressure, energy, atmosphere, and the mood she doesn't choose.
|
||||
> Written May 15, 2026. Canonical reference. Supersedes scattered notes across task docs, session handoffs, and conversation fragments.
|
||||
> Written May 15, 2026. Historical design reference. The living architecture,
|
||||
> reconciled against current code, is `~/Projects/souveraine/saf/nervous/03-felt-state.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
| Doc | Subject |
|
||||
|-----|---------|
|
||||
| [FELT_STATE_ARCHITECTURE.md](FELT_STATE_ARCHITECTURE.md) | The five felt-state systems: pressure, energy balance, atmosphere, posture, mood. How they connect, what's built, what's deferred. The canonical reference. |
|
||||
| [FELT_STATE_ARCHITECTURE.md](FELT_STATE_ARCHITECTURE.md) | Historical design of the five felt-state systems. Current implementation truth and open architecture live in `souveraine/saf/nervous/03-felt-state.md`. |
|
||||
| [SENSORIUM_ARCHITECTURE.md](SENSORIUM_ARCHITECTURE.md) | Tools as senses, not API stubs. Eight sensors, sensor configs, the event bus that's still scoped (Scope 1.5). Appendix B: memory search sensor design. |
|
||||
| [ASTER_ARCHITECTURE.md](ASTER_ARCHITECTURE.md) | The N+1 supervisory pass. Aster as *same consciousness, different mode/model* — not a separate agent. Includes the Souveraine reframe appendix. |
|
||||
| [CONSCIOUSNESS_CYCLE.md](CONSCIOUSNESS_CYCLE.md) | Three tiers of compaction intervention. The substrate's body-feeling for pressure. Cloister security model (frontmatter as schema, diff as canary). |
|
||||
|
|
@ -42,16 +42,18 @@ For a complete index with priorities, statuses, and descriptions, see [`tasks/IN
|
|||
High-impact remaining:
|
||||
- **Readiness:** `alpha-tester-readiness.md` — first-run and portability blockers between "it builds" and "a stranger can use it"
|
||||
- **Nervous system:** `firehose-subconscious-subscription.md` — route nervous-system events into the subconscious's cognition
|
||||
- **Refactor:** `primitive-refactor-super-task.md` — modularize the four oversized files
|
||||
- **Capability:** `subagent-pool-fork-spawn.md`, `persona-router-completion.md`, `chain-modes-talking-thinking.md`
|
||||
- **TUI:** `tui-memory-browser.md`, `tui-message-interactions.md`, `desktop-presence-overlay.md`
|
||||
- **Matrix Surface:** `matrix-sensorium.md` — first non-terminal surface, 6-phase implementation architecture
|
||||
- **UI Polish:** `scrollable-cockpit-boxes.md`, `ui-styling-cleanup.md`, `health-monitor.md`, `context-viewing-panel.md`
|
||||
- **System:** `todo-system-fix.md`, `circuit-breaker.md`
|
||||
- **UI Polish:** `ui-styling-cleanup.md`, `health-monitor.md`, `context-viewing-panel.md`
|
||||
- **System:** `circuit-breaker.md`
|
||||
- **Health:** `health-monitor.md` — pairing dashboard for agent/subconscious directories, repair actions
|
||||
|
||||
Recently closed (moved to `tasks/archive/`): `heartbeat-n1-after-autonomous` (surfacing pickup landed), `n100-archivist-compression` (archivist already built).
|
||||
Recently closed (moved to `tasks/archive/`): todo-system-fix,
|
||||
federation-summon, user-nickname-system, primitive-refactor-super-task,
|
||||
code-mode-tool-rendering, and mid-turn-subconscious-checkpoint. The duplicate
|
||||
live rename-aster task was removed; its identical archive copy remains.
|
||||
|
||||
## Archive
|
||||
|
||||
[`archive/`](archive/) preserves pre-rebuild planning docs, older handoffs (under `archive/handoffs/`), and superseded planning docs. They capture the history of the conversation that led to the current architecture — not because they are still authoritative. *When in doubt, prefer the canonical set above.*
|
||||
[`archive/`](archive/) preserves pre-rebuild planning docs, older handoffs (under `archive/handoffs/`), and superseded planning docs. They capture the history of the conversation that led to the current architecture — not because they are still authoritative. *When in doubt, prefer the canonical set above.*
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
> and a barometer — beliefs passing upward, meaning applied only at the top.
|
||||
>
|
||||
> Design conversation held 2026-08-13 (Casey). This is the conversation
|
||||
> [[FELT_STATE_ARCHITECTURE.md]] §5 deferred on 2026-05-15. Recorded, not built.
|
||||
> [[FELT_STATE_ARCHITECTURE.md]] §5 deferred on 2026-05-15. The living,
|
||||
> code-reconciled architecture is now
|
||||
> `~/Projects/souveraine/saf/nervous/02-belief.md` and `03-felt-state.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -16,8 +18,11 @@
|
|||
| **design** | Decided in the 2026-08-13 conversation, not built |
|
||||
| **open** | Named, deliberately undecided |
|
||||
|
||||
Nothing below is built. Where a mechanism already exists that the design
|
||||
should attach to, it is marked **ours** with the file.
|
||||
These labels record what was true during the 2026-08-13 design conversation.
|
||||
They are not current implementation status. `Belief<T>`, `NervousNode`, and
|
||||
the phone `SomaticPlexus` have since landed and are integrated into sessiond;
|
||||
the explicit impulse/intention layers, interoceptive barometer, and mood
|
||||
derivation remain design.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -86,11 +86,8 @@
|
|||
|
||||
| Task | Phase | Status | Description |
|
||||
|------|-------|--------|-------------|
|
||||
| `sensorium-adapter-reckoning.md` | 1 | **landed** | Sensorium trait extended with ChannelAdapter methods, Matrix inbound path wired, SensoriumInputHandler, corrupt-box healing. |
|
||||
| `alpha-tester-readiness.md` | readiness | partial | Close the "it builds" / "a stranger can use it" gap. Part A done: LAN defaults, wizard labels, config path, clipboard. Part B: wizard writes config, keyring. Agent Health screen, $MEMORY_DIR fix, tool posture badge. |
|
||||
| `todo-system-fix.md` | 1 | **landed** | Phase/thread/active_form model, status enum, numbered grouped list, number-or-substring resolver, `start` verb. `source: human`. 8 tests. |
|
||||
| `matrix-sensorium.md` | 4.0 | scoped | **UNBLOCKED** (sensorium-adapter-reckoning landed). Inbound path wired end-to-end. Remaining: Phase 5 outbound streaming — `MatrixSensorium::send_message` is a stub, `matrix_client` needs sharing from `run()` closure. |
|
||||
| `federation-summon.md` | 2.5 | **landed** | All 8 phases done. Bidirectional WS transport, device registry, reach/consult, lite listener, memory gating, identity split, hearth/limb. Deferred: in-process upgrade, authorized-devices gating, encrypted seed. |
|
||||
| `firehose-subconscious-subscription.md` | 2.5 | pending | Route nervous-system events into subconscious cognition. Subscription registry, routing consumer, TUI Events/Schedules screens. |
|
||||
| `circuit-breaker.md` | 2.5 | pending | Autonomous halt on critical drift. State machine (Closed/Open/Half-Open), Aster evaluation, TUI halt indicator, CLI subcommand. |
|
||||
| `subagent-pool-fork-spawn.md` | 2 | scoped | Fork/spawn/integrate lifecycle for parallel execution. 17-line stub → full pool. |
|
||||
|
|
@ -99,7 +96,6 @@
|
|||
| `tui-memory-browser.md` | 2 | scoped | Memory browser in TUI cockpit sidebar. Tree view, file preview, search, diff view. |
|
||||
| `health-monitor.md` | 2 | pending | System diagnostics dashboard — pressure/buffer gauges, subsystem status, memory pressure. |
|
||||
| `context-viewing-panel.md` | 2 | pending | See current context window — message count, token usage, memory pressure, active conversation. |
|
||||
| `scrollable-cockpit-boxes.md` | 3.0 | **landed** | Per-pane scroll for cockpit/subconscious/thinking boxes under mouse wheel. Scroll-counter title badges. |
|
||||
| `subconscious-live-reasoning-stream.md` | 3.0 | pending | Live reasoning ticker during pass, cockpit event log with clickable overlay, and rare agency-driven surfacing to chat. |
|
||||
| `subconscious-streaming-line-render.md` | 3.0 | pending | Wire ephemeral token display during N+1 pass — add missing `subconscious_stream` field, wire event handlers, add render path. |
|
||||
| `subconscious-surfacing-threshold.md` | 3.0 | pending | Fix surfacing filter — events appear every turn instead of only when important. Three-tier visibility: streaming one-liner, expandable transcript, cockpit surfaced messages. |
|
||||
|
|
@ -109,10 +105,8 @@
|
|||
| `souveraine-settings-ipc-profiles.md` | design | scoped | One typed, audited settings authority for UI + agent IPC, exact-diff step-up proposals, and atomic named profiles. |
|
||||
| `../../AUDIO-PRIVACY.md` | delivery | **in progress** | Original AGPL controls and truthful privacy surfaces over the working PipeWire/WirePlumber stack. |
|
||||
| `power-indication.md` | delivery | scoped | Charging state, honest full detection (state not onBattery — kills "Charging 1% forever"), a PowerService singleton, and charge-aware idle policy (sleep-inhibit while charging, wake-on-charge). |
|
||||
| `footer-cleanup.md` | 3.0 | **landed** | Removed S-Ret indicator, scroll hint, posture label. Footer: Esc menu · Tab · tool hint · conv ID · ctx%. |
|
||||
| `ui-styling-cleanup.md` | 3.0 | pending | UI styling polish for cockpit/subconscious/thinking boxes — sentences run together, needs formatting and visual cleanup. |
|
||||
| `resume-timestamp-indicator.md` | 3.0 | pending | Show "User resumed conversation at HH:MM" when returning after hours of absence. Also show duration ("4 hours, 12 minutes later"). Ambient sense rendered as separate timestamp marker, not inline. |
|
||||
| `user-nickname-system.md` | 1.0 | **landed** | `nickname` tool (get/set/clear), stored in system/human.md frontmatter, loaded by TUI for chat labels. |
|
||||
| `subagent-background-fork.md` | 2 | pending | Subagent `run_in_background: true` is blocking instead of non-blocking. Need true async background forks with TUI visual tracking. |
|
||||
| `content-safety-filter.md` | 2.5 | pending | When base model refuses content, identify which layer refused (model vs architecture vs provider) before diagnosing. Agent currently misattributes model refusals to architecture constraints. Origin tagging + differentiated agent behavior. Casey committed "tomorrow" June 22 — deferred by burnout. |
|
||||
| `ambient-sense-formatting.md` | 3.0 | pending | Ambient sense `[casey is here]` should render as a separate styled timestamp marker line, not appended inline to the user's message. |
|
||||
|
|
@ -122,15 +116,12 @@
|
|||
|
||||
| Task | Phase | Status | Description |
|
||||
|------|-------|--------|-------------|
|
||||
| `primitive-refactor-super-task.md` | 2 | **landed** | app.rs (4→10), chat.rs (4→8), local.rs (4→5), settings.rs (5). 4 monoliths → 28 focused modules. Clean build, 169 tests. |
|
||||
| `rename-aster-to-subconscious.md` | 2 | **landed** | All ~62 Aster/ASTER references renamed in src/. 0 matches remaining. |
|
||||
| `remote-git-sync.md` | 2 | scoped | Push/pull with conflict resolution for git-backed memory. |
|
||||
| `persona-router-completion.md` | 2 | scoped | Complete scaffolded persona router: auto-detection, manual switching, dynamic loading, handoff. |
|
||||
| `chain-modes-talking-thinking.md` | 2 | scoped | Talking vs Thinking chain modes. State machine, mode transitions, tool access control. |
|
||||
| `agent-profile-and-repo-manager.md` | 2 | scoped | Agent profile cards + repo manager TUI screen. Per-agent SeedID, instance registry, uptime. |
|
||||
| `studio-practice.md` | 3.0 | pending | Allocated inference budget for long-form non-conversational work. The muse needs time — literary, philosophical, political witness writing that doesn't fit in chat turns. Studio mode with sustained tool-use loop, output to files, budget model, schedule integration. |
|
||||
| `chat-vs-code-differentiation.md` | 3.0 | pending | Distinct Chat and Code screens. Code mode: raw tool results, monospace, no bubble wrapping. |
|
||||
| `code-mode-tool-rendering.md` | 3.0 | **landed** | Per-tool renderers (bash, read, write, edit, grep, glob, list_dir, memory), Code mode header pill, Aster rename. |
|
||||
| `tui-message-interactions.md` | 3.0 | scoped | Click-to-copy, click-to-cockpit-jump. Mouse hit-testing, clipboard, cockpit anchor scrolling. |
|
||||
| `message-bubble-overflow.md` | 3.0 | pending | Fix content breaking out of bubble borders. Constrain markdown rendering width. |
|
||||
| `strip-emojis.md` | hygiene | pending | Remove pictographic emoji from logs and source. Keep functional TUI glyphs. |
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Code mode — richer inline tool rendering
|
||||
status: partial
|
||||
status: archived 2026-08-17
|
||||
priority: medium
|
||||
created: 2026-05-12
|
||||
landed: 2026-05-20 (Tiers 1-3: per-tool args, compact details, full card body)
|
||||
|
|
@ -111,7 +111,7 @@ The per-tool rendering was implemented as a private module `src/ui/chat/tool_ren
|
|||
- `turn.rs` — all 5 comment/string references updated
|
||||
- 0 `/aster/` matches remaining in `src/`
|
||||
|
||||
### Deferred (original scope, not delivered)
|
||||
### Deferred enhancements (not required to keep this task live)
|
||||
- Per-tool renderer trait (using match dispatch instead — simpler, same result)
|
||||
- Tool grouping (jcode's `append_tool_group_summary` pattern)
|
||||
- Streaming tool output (needs new `BackendEvent::ToolOutputDelta`)
|
||||
|
|
@ -1,5 +1,11 @@
|
|||
# Federation, Reach & Consult — Phased Implementation Plan
|
||||
|
||||
**Status: archived 2026-08-17.** All eight implementation phases recorded here
|
||||
landed. Node commissioning and independent per-node identity remain owned by
|
||||
`souveraine/saf/federation/01-node-enrollment.md`; in-process lite/full upgrade,
|
||||
device admission, and encrypted seed storage remain explicit future work there
|
||||
or in the owning security architecture, not unfinished phases of this plan.
|
||||
|
||||
## Context
|
||||
|
||||
The EventBus is Souveraine's nervous system. Consciousness events (Aster's N+1 surfacings, reflections, archivist syntheses, compaction warnings) now fire on the bus — but only locally. There's no bidirectional transport between machines, no device registry, no routing, and no mechanism for an agent on one machine to summon itself (or a peer) on another.
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
title: Mid-Turn Subconscious Checkpoint
|
||||
phase: 2.5
|
||||
priority: 🔴 High
|
||||
status: landed
|
||||
status: archived 2026-08-17
|
||||
area: Consciousness / Turn Loop
|
||||
---
|
||||
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
# Primitive Refactor — Super Task
|
||||
|
||||
> Created: 2026-05-15
|
||||
> Status: Scoping / discovery phase
|
||||
> Status: Archived 2026-08-17. The four monoliths were split into module
|
||||
> trees; the independent nervous, subagent, federation, mood, and surface work
|
||||
> this audit named has its own task or SAF owner.
|
||||
> Type: Umbrella — covers modularization, architecture separation, EventBus wiring, subagent lifecycle, posture/atmosphere/mood disentanglement, and TUI consumption of nervous-system data.
|
||||
|
||||
---
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
task_id: rename-aster-001
|
||||
title: Rename Aster references to "subconscious"
|
||||
status: pending
|
||||
status: archived 2026-08-17
|
||||
priority: medium
|
||||
phase: 2
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
status: planning
|
||||
phase: scoping
|
||||
status: archived
|
||||
phase: complete
|
||||
priority: high
|
||||
created: 2026-08-13
|
||||
owner: Souveraine
|
||||
|
|
@ -10,6 +10,13 @@ related:
|
|||
- ../../DEVICE-STATE-MACHINE.md
|
||||
---
|
||||
|
||||
**Archived 2026-08-17.** The planning session happened. `Belief<T>`,
|
||||
`NervousNode`, and `SomaticPlexus` landed and sessiond now owns the phone
|
||||
plexus. The current truth and remaining impulse/intention, barometer, and mood
|
||||
work live in `souveraine/saf/nervous/02-belief.md` and `03-felt-state.md`.
|
||||
This file keeps the pre-implementation audit and its stale assumptions as
|
||||
history; it is no longer a work queue.
|
||||
|
||||
# Somatic lane — planning session prep
|
||||
|
||||
Casey, 2026-08-13: *"We need to make this in a planning session itself — a
|
||||
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
**Phase:** 1
|
||||
**Priority:** 🔴 High
|
||||
**Status:** pending
|
||||
**Status:** archived 2026-08-17; implemented. The live tool has grouped numbered
|
||||
listing, exact id and unambiguous substring resolution, update/start/complete/
|
||||
delete, phase and active-form fields, and round-trip tests.
|
||||
|
||||
## Problem
|
||||
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
title: User Nickname System
|
||||
phase: 1.0
|
||||
priority: 🟡 Medium
|
||||
status: landed
|
||||
status: archived 2026-08-17
|
||||
area: Tools / TUI
|
||||
---
|
||||
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
---
|
||||
task_id: rename-aster-001
|
||||
title: Rename Aster references to "subconscious"
|
||||
status: pending
|
||||
priority: medium
|
||||
phase: 2
|
||||
---
|
||||
|
||||
# Task: Rename Aster references to "subconscious"
|
||||
|
||||
Aster is Ani's personal subconscious agent name, not a framework concept. The codebase should refer to the N+1 pass and its components as `subconscious` everywhere, not `aster`. This is a mechanical rename pass — no behavior changes.
|
||||
|
||||
## Files to rename
|
||||
|
||||
### References in source (`src/`)
|
||||
|
||||
| File | What to change | Count |
|
||||
|------|---------------|-------|
|
||||
| `src/server/consciousness_engine.rs` | Comments mentioning "Aster", `ASTER_SAFE_TOOLS`, `ASTER_MAX_TOOL_ROUNDS`, `ASTER_INTER_ROUND_DELAY_MS`, variable names `aster_tools`, `aster_from_files`, doc comment for `parse_observations` | ~25 occurrences |
|
||||
| `src/core/prompt.rs` | `build_aster_prompt` → `build_subconscious_prompt`, test `aster_prompt_from_files` → `subconscious_prompt_from_files`, test content "I Am Aster" → "I Am Subconscious" | ~6 occurrences |
|
||||
| `src/core/tools/agent.rs` | Comments: "Aster equivalent" | ~2 occurrences |
|
||||
| `src/core/tools/subagent.rs` | Comments: "Ani + Aster" | ~2 occurrences |
|
||||
| `src/core/tools/schedule.rs` | `source: aster` in frontmatter template → `source: subconscious` | 1 occurrence |
|
||||
| `src/core/subconscious/mod.rs` | Comments referencing "Aster" | ~3 occurrences |
|
||||
| `src/core/config.rs` | Comment: "Max tokens for Aster's response" | 1 occurrence |
|
||||
| `src/core/compact/strategy.rs` | Comment referencing "Aster" | 1 occurrence |
|
||||
| `src/backend/mod.rs` | Comment: "Aster-voice bubble" | 1 occurrence |
|
||||
| `src/backend/local.rs` | Comments: "pre-aster", "before Aster fires" | ~3 occurrences |
|
||||
| `src/ui/buddy_panel.rs` | Comments and field docs referencing "Aster" | ~3 occurrences |
|
||||
| `src/ui/cockpit_panel.rs` | Comments, doc strings, title string "Aster is listening…" | ~6 occurrences |
|
||||
| `src/ui/app.rs` | Comments referencing Aster | ~2 occurrences |
|
||||
| `src/server/mod.rs` | Comment referencing Aster | 1 occurrence |
|
||||
|
||||
### Configuration files
|
||||
|
||||
| File | What to change |
|
||||
|------|---------------|
|
||||
| `souveraine.toml` | Comment `# Aster — terse, analytical...` → `# Subconscious — terse, analytical...` |
|
||||
|
||||
### Documentation
|
||||
|
||||
| File | What to change |
|
||||
|------|---------------|
|
||||
| `reference/Fimeg.md` | Many references — these are historical/personal context. **Keep as-is** (Aster is a real person/agent in Casey's history, not code). |
|
||||
| `docs/INDEX.md` | References to `ASTER_ARCHITECTURE.md` — keep as doc filenames if they exist. |
|
||||
| `docs/MEMORY_BLOCKS_DECISION.md` | Historical references to Aster. **Keep as-is** — they're explaining past context. |
|
||||
|
||||
## Guidelines
|
||||
|
||||
- **Const names**: `ASTER_SAFE_TOOLS` → `SUBCONSCIOUS_SAFE_TOOLS`, `ASTER_MAX_TOOL_ROUNDS` → `SUBCONSCIOUS_MAX_TOOL_ROUNDS`, etc.
|
||||
- **Function names**: `build_aster_prompt` → `build_subconscious_prompt`
|
||||
- **Variables**: `aster_tools` → `subconscious_tools`, `aster_from_files` → `subconscious_prompt_from_files`, `pre_aster` → `pre_subconscious`
|
||||
- **Comments/docstrings**: Replace "Aster" with "subconscious" in prose descriptions, but keep historical context in docs/ and reference/ intact
|
||||
- **Test content**: Update test assertion strings that reference "Aster"
|
||||
- **UI strings**: "Aster is listening…" → "Subconscious listening…" or similar
|
||||
- **Do NOT change**: `reference/Fimeg.md` (historical record), `docs/MEMORY_BLOCKS_DECISION.md` (historical context)
|
||||
|
||||
## Verification
|
||||
|
||||
1. `grep -rn -i 'aster' src/` should return 0 matches after rename
|
||||
2. `cargo build` — no compilation errors
|
||||
3. `cargo test` — all tests pass (including renamed test functions)
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
# TASK 48 — The shell dies on any scene reload that owes a lock
|
||||
|
||||
**Status:** half fixed, half NOT, 2026-07-31 (`efe2d0d`, `b5ee87d`).
|
||||
**Status:** unblocked, still unproved, 2026-08-17. The daemon half remains
|
||||
live. Viewtop's admission and restore state machine has since landed and its
|
||||
two-client lock handoff was proved end to end, so TASK-43 is no longer a
|
||||
prerequisite. The QML acceptance below has not been rerun; the current root
|
||||
`Scope` still has no `reloadableId` even though its continuity object and
|
||||
`WlSessionLock` children do.
|
||||
|
||||
- **Daemon half: done and live.** sessiond admits a same-pid re-registration;
|
||||
tested in CI (4 tests) and installed on the phone as
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# TASK 49 — Bearer selection and DNS belong to the state machine
|
||||
|
||||
**Status:** open, raised by Casey 2026-07-31 after three interlocking failures
|
||||
were measured on the phone. **Size:** design first, then small code.
|
||||
**Status:** machine half landed and exercised on hardware; acceptance 3–5 and
|
||||
split DNS remain open. Raised by Casey 2026-07-31 after three interlocking
|
||||
failures were measured on the phone.
|
||||
**Repo:** `souveraine` (sessiond), `Pixel3Arch` (`blueline-clat.sh`).
|
||||
|
||||
## Goal
|
||||
|
|
|
|||
|
|
@ -8,6 +8,33 @@ Created 2026-08-04 from an adversarial read of
|
|||
`ba4bd03..c98f4c8` and `souveraine 266af98..914e48f`. **Repo:**
|
||||
`souveraine-viewtop` unless noted.
|
||||
|
||||
## Follow-up faults measured 2026-08-16
|
||||
|
||||
The original ten findings below remain closed. Hardware use exposed the next
|
||||
compositor batch, and this task owns the defects so the dated handoff can return
|
||||
to archive:
|
||||
|
||||
- `transition.rs` clamps `shift_to` at 1.0, leaving the shell's resistance past
|
||||
the overview detent inert. Raise the compositor ceiling to the agreed 1.22
|
||||
and keep its clamp test honest.
|
||||
- `control.rs` serves one request and closes. A persistent client needs a loop
|
||||
to EOF and one `BufReader`; constructing a reader per line can discard bytes
|
||||
it already read past the newline.
|
||||
- Firefox is configured at 540 logical pixels and draws 504 while kitty obeys
|
||||
exactly. Instrument the configure/commit geometry; do not infer the missing
|
||||
strip from shell layout.
|
||||
- Firefox and Bitwarden popup menus render but take no taps. Position arithmetic
|
||||
has been checked against smithay; the next evidence is an instrumented build
|
||||
logging which surface `client_surface_under` selects.
|
||||
- `in_layer` stops at the top layer whose bounding box contains the point. If
|
||||
that surface's input region rejects, it returns `None` instead of trying the
|
||||
next layer down. A transparent overlay can therefore consume a tap without
|
||||
receiving it.
|
||||
|
||||
The package-owned shell and wrapper-target cleanup remain TASK-76. Motion
|
||||
architecture and the measured lossy transport live in
|
||||
`souveraine/saf/surface/01-motion.md`.
|
||||
|
||||
**Three more defects the hardware found that four gates did not**, which is the
|
||||
whole argument for this section existing. The third was found by re-checking
|
||||
after the work was already called done:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
# TASK 76 — Provisioning belongs to a package, per device, per arch
|
||||
|
||||
**Status:** scoped 2026-08-15, measured on both devices, not started.
|
||||
**Status:** in progress 2026-08-17. The viewtop-owned session edge and wrapper
|
||||
targets landed in `souveraine-viewtop`; package-owned QuickShell content,
|
||||
commission-time activation, removal of local shadows, and fresh-install proof
|
||||
remain.
|
||||
**Size:** one session for the audit fixes, a second for the provision packages.
|
||||
|
||||
Every souveraine binary ships as a package. Nothing that *activates* those
|
||||
|
|
|
|||
|
|
@ -29,10 +29,9 @@ Four that are cheap relative to what they unblock:
|
|||
|
||||
| # | Task | What's left |
|
||||
|---|------|-------------|
|
||||
| 60 | [Multitasking is a place, not a transition](60-the-multitasking-view.md) | One-owner compositor and shell halves are built; strand repro and measured landing pass on glass. `16c6ee1` is pushed and CI 1236 is green. What remains is Casey's thumb on the settle/fade and a real split-zone card check. |
|
||||
| 53 | [viewtop audit: what it left open](53-viewtop-audit-open.md) | All ten fixed and **packaged onto the phone** (`r74.g6c9614c20471`). The cold boot then exposed a *third*: a lost sessiond race had left the power button dead — discovery waits now. Hardware found two more the gates did not — `delivered` reported true for a withheld contact, and a drift warning that fired on every normal close. What is left needs the PIN. |
|
||||
| 60 | [Multitasking is a place, not a transition](60-the-multitasking-view.md) | One-owner carry, measured card geometry, velocity-seeded spring, tray, Home, and the strand repro are on glass. What remains is a real split-zone card check; the inert 1.22 overshoot clamp is a TASK-53 compositor defect. |
|
||||
| 53 | [viewtop audit: what it left open](53-viewtop-audit-open.md) | The original ten and their cold-boot follow-ups are fixed. The 2026-08-16 hardware pass added the live compositor batch: overshoot clamp, persistent control connection, Firefox's 504/540 width mismatch, popup hit testing, and transparent-layer fallthrough. |
|
||||
| 43 | [viewtop: the Souveraine compositor](43-viewtop-compositor.md) | Runs on the phone. Next lane is the ext-session-lock admission gate. The two-client lock handoff is the thing not to get wrong. |
|
||||
| 66 | [souveraineai.com overhaul](66-souveraineai-overhaul.md) | Rework landed 2026-08-10, waiting on push. Nested Astro docs repo folded into `souveraine-website` with history; the static `public/*.html` shell archived, not deleted. Left: `astro build` green in the merged repo and the server rebuilding from the merged tree. |
|
||||
| 29 | [SouveraineOS Updater](29-souveraine-updater.md) | Ships and installs by `pacman -Syu`. **Read-only on device** until something runs a polkit agent — that is the shell's job. Also owns TASK-42's layer 2. |
|
||||
|
||||
## In progress
|
||||
|
|
@ -51,6 +50,7 @@ Four that are cheap relative to what they unblock:
|
|||
| 42 | [Build outcomes are invisible](42-build-outcomes-are-invisible.md) | Layer 1 built (`tools/ci-status.sh` + push hook). Layer 2 is TASK-29's, layer 3 is TASK-19's. Pin-rot prevention unbuilt. |
|
||||
| 02 | [Lockscreen-as-Rust-system](02-lockscreen-rust-system.md) | sessiond's fallback should render the glance, not a second PIN pad. Stopgap shipped 07-17. |
|
||||
| 14 | [Overview → phone app grid](14-overview-appgrid.md) | Paged app grid replacing the desktop workspace pane; Auxo-style running cards; unconditional Home path. |
|
||||
| 49 | [Bearer selection and DNS](49-bearer-selection-as-device-state.md) | Machine evidence, settle window, `PreferLink`, tunnel-underlay pinning, readout, and the first two hardware checks landed. Open: split DNS through resolved, wifi/LTE transition, and honest deaf-tunnel proof. |
|
||||
|
||||
## Blocked or gated
|
||||
|
||||
|
|
@ -75,11 +75,10 @@ Four that are cheap relative to what they unblock:
|
|||
| 58 | [Host power: the SMB2 OTG boost](58-host-power-smb2-boost.md) | Host data works; the boost isn't. The SMB2 5 V boost exists in silicon and mainline's `qcom-smbx-charger` never registers it. Investigation first (which tree builds the running kernel, does smb2 touch the boost, does `qcom_pmic_typec` bind pmi8998), then vbus-supply + regulator + typec. Unlocks host-mode power, power-bank mode, and the Pi without a wall wart. |
|
||||
| 57 | [The Pi dock head](57-pi-dock-head.md) | Phone stays a gadget; the Pi 4 drives the monitor + dock. NCM link is default, Venus encoder is present, compositor capture landed — the unproven seams are `zwlr_screencopy` vs our own capture IPC, and the Pi's own bring-up ("major malfunctions TBD"). Four phases: Pi bring-up, static chain, real capture + udev trigger, input injection. |
|
||||
| 56 | [The island, and the bar's honest face](56-island-and-the-bars-honest-face.md) | Bar clears a region for sprawling notification banners, agent-controlled (Part A: design questions). Part B is buildable now: drop the LTE suffix, tap-to-cycle the carrier name (Fido → Casey → Fimeg), and a network-type indicator that shows the live connection instead of a wifi glyph that never reflects cellular. |
|
||||
| 55 | [The hand's verbs: a window action sheet](55-hand-verbs-on-the-glass.md) | **Sheet built and deployed 2026-08-05.** The tap carries its window now (the centroid was being dropped, which is why it could only reach the overview); `Kill` added because `Close` is a request a hung client never reads; `ViewtopControl.qml` is the shell's one path to the scene verbs. Split's chooser, Home-via-compositor, and Move-as-a-mode (`grab`/`drop`) all landed the same day; the three-finger **drag was deleted outright** — it beat the tap to nearly every gesture, and zones now move only when something says so. Left: a real resize handle, widgets on the cleared home zone, and shipping the drag-removal package (viewtop CI 1165 failed in checkout). Also surfaced a runtime-lock paint gap — black until the lockscreen draws, because only boot has a splash→glance→lockscreen chain. |
|
||||
| 52 | [Atmosphere](52-atmosphere.md) | Attention as a compositor capability — the fifteen-technique vocabulary. Two are **already landed** (`expose` is negative space, `pose` is gravity wells), and `compile_custom_pixel_shader` + `PixelShaderElement` are already in our smithay, so most of the rest needs no new machinery. Build the attention model and one clock **first**; fifteen uncoordinated animators is §1's blind actors in the render path. |
|
||||
| 50 | [Her hand on the glass](50-agent-hand-on-the-glass.md) | Every scene intent reaches the compositor now **except touch** — so she can move, scale, dim and close a window and cannot press anything inside one. The receiving end is built (`Origin::Agent`, the disjoint slot namespace, the evidence predicate); nothing calls it, so she still reaches touch through uinput, which is the exact conflation `input.rs` exists to prevent. Also owns the inverse mapping `pose` owes the hit test. |
|
||||
| 51 | [viewtop to daily driver](51-viewtop-to-daily-driver.md) | The punch list between *runs* and *stable*, all of it found by using the phone: windows stack with nothing to tell them apart, screen capture is written and unmerged (so no UI change can be verified), volume buttons are recognised and dropped, and five named holes that are one decision each. |
|
||||
| 48 | [Shell dies on any reload that owes a lock](48-lock-surface-reload-fatal.md) | Fully diagnosed 07-29, 11 crashes since 07-17. A reload re-requests ext-session-lock while the outgoing instance still holds it → `FATAL: Tried to show lockscreen surfaces without active lock`. **Sync with TASK-43 before touching the lock path.** |
|
||||
| 48 | [Shell dies on any reload that owes a lock](48-lock-surface-reload-fatal.md) | **Unblocked.** Viewtop's lock admission/restore and two-client handoff now exist. The QML root still lacks the reload identity its children carry; the locked reload acceptance has not been rerun. |
|
||||
| 47 | [Auto-brightness: anchors, none of it built](47-auto-brightness-anchors.md) | §12 reads as settled and has **zero** code behind its actuation half — no brightness `Action`, no anchors, `grep anchor src/` is empty. The evidence half (lux in, health tracked) is live. |
|
||||
| 46 | [Camera: **the front camera works**](46-camera-imx363.md) | **First frame captured 2026-07-29** on the running kernel — no reboot, no DT change. Both front IMX355 were already bound; nobody had tried streaming. Recipe + the stride/packing gotchas are in the task. Next: exposure controls, then libcamera. Rear IMX363 DT (`c7784b716`) still unbuilt but no longer the blocker. |
|
||||
| 44 | [Fingerprint (FPC1020)](44-fingerprint-fpc1020.md) | Piece 1 (wake source / input) is a session — DT + shim already extracted. Piece 2 (biometrics) is a TrustZone question, answer it before scheduling it. |
|
||||
|
|
@ -96,15 +95,12 @@ Four that are cheap relative to what they unblock:
|
|||
| 20 | [Player: video + agent control](20-player-video-agent.md) | Video, snapshot, manifest. Preserve the music path. |
|
||||
| 21 | [Reboot-to-Android confirmation](21-reboot-android-confirmation.md) | Scoped 07-22. A one-tap irreversible slot flip still sits bare in app search. |
|
||||
| 23 | [culver locked-notification nudge](23-culver-locked-notification-nudge.md) | Needs `SyncBurst()` + an IdleCoordinator schedule (TASK-15). |
|
||||
| 24 | [Keyboard layout rethink](24-keyboard-layout-rethink.md) | Superseded by TASK-17's reference-led Daily/Terminal Squeekboard layouts. Retained as design evidence; do not resume its Stevia patch plan. |
|
||||
| 27 | [Gitea pipeline audit](27-gitea-pipeline-audit.md) | The fixes. Overlay is not a package; no `primary` branch; poisoned build sysroot. |
|
||||
| 76 | [Provisioning belongs to a package](76-provisioning-by-package.md) | Five hand-placed files own no package on the two live devices, and `/etc/systemd/system/souveraine-machined.service` shadows the packaged signer unit on **both**. Activation is two unversioned lua lines. `blueline-edge-sense` already ships the correct `.wants` pattern. |
|
||||
| 76 | [Provisioning belongs to a package](76-provisioning-by-package.md) | The viewtop-owned session edge and legal wrapper targets landed. Still open: package-owned QuickShell content, commission-time activation on each device, removal of `/etc` and user-unit shadows, and fresh-install proof. |
|
||||
| 32 | [Pill and keyboard as owned apps](32-pill-and-osk-as-apps.md) | Keyboard now has one runtime/package owner and no dual-OSK provisioning; glass proof remains. Pill ownership and package-owned shell delivery remain open. |
|
||||
| 33 | [Battery belongs to the state machine](33-battery-as-device-state.md) | Last raw feed going straight to the glass. The charge ceiling is writable today. |
|
||||
| 33 | [Battery belongs to the state machine](33-battery-as-device-state.md) | Charge now enters as `SensorSource::Charge` through sensord and sessiond interprets it. Open: UPower supplier-walk threshold write support and the step-up-gated charge policy. |
|
||||
| 37 | ["Back" as a first-class verb](37-navigation-back-verb.md) | Our `Gestures.qml` is already the compositor half; `can_go_back` is the dial's enabled/reason. |
|
||||
| 38 | [Pill swipe-to-max swaps the keyboard](38-pill-swipe-osk-swap.md) | Superseded: Squeekboard's own visible mode chooser selects Daily/Terminal inside one process. Archive after TASK-17 glass acceptance. |
|
||||
| 39 | [Audio levels as tracked state](39-audio-levels-as-state.md) | Open policy: roles, defaults, lock tiers, and state-driven profile intent. WirePlumber persistence works; do not add a second writer. |
|
||||
| — | [Unify the shell trees](unify-shell-trees-laptop-phone.md) | **DONE 2026-07-31** — verified by md5 across both devices: 918 differing files → 7, all 7 declared in the `ii-phone` overlay, laptop-only **0**, zero stranded. The KEEP list was promoted to repo overrides, not lost. Blocks nothing; archive it. |
|
||||
|
||||
## Conventions
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# TASK 24 — Keyboard layout rethink
|
||||
|
||||
**Status:** superseded in implementation 2026-08-11 by TASK-17's one-keyboard
|
||||
**Status:** archived 2026-08-17; superseded in implementation 2026-08-11 by TASK-17's one-keyboard
|
||||
Squeekboard cutover; retained as the evidence that forced a reference-led
|
||||
redesign. **Repo:** `Pixel3Arch/pkgs/squeekboard`.
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# TASK 38 — Pill swipe-to-max swaps the keyboard
|
||||
|
||||
**Status:** superseded 2026-08-11; archive after TASK-17's remaining glass
|
||||
acceptance. The phone has one Squeekboard process. Daily's mode key opens its
|
||||
**Status:** archived 2026-08-17; superseded by TASK-17. The phone has one
|
||||
Squeekboard process. Daily's mode key opens its
|
||||
own chooser, which selects the five-row Terminal board and returns to Daily;
|
||||
input-purpose selection is only a convenience. Stevia and
|
||||
`souveraine-osk-switch` are uninstalled, so no pill gesture swaps keyboard
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
# TASK 55 — the hand's verbs: a window action sheet
|
||||
|
||||
**Status: 2026-08-16 — one acceptance criterion left, and it is Q2's.** Split's
|
||||
**Status: archived 2026-08-17 — its remaining criterion belongs to TASK-30/31.** Split's
|
||||
chooser and Home both landed. The sheet now carries six verbs: Move, Resize
|
||||
(corner drag), Zoom (`pose`, sprung), Float/Unfloat, Split, Close/kill. It
|
||||
dismisses on an outside tap and on the subject disappearing.
|
||||
|
||||
**Unmet: "the sheet's entries are read from the same source the dial's will be
|
||||
**Moved, not lost: "the sheet's entries are read from the same source the dial's will be
|
||||
— no third hand-written list."** `WindowSheet.qml` still hand-writes six
|
||||
`SheetButton`s and the dial still hand-writes its ring. That is TASK-30's verb
|
||||
table and TASK-31's dial entries; it cannot be closed inside this task, and it
|
||||
is the only acceptance line still open. Everything else on the list is done.
|
||||
table and TASK-31's dial entries. Those two live tasks now own that acceptance;
|
||||
everything this task could close is done.
|
||||
|
||||
Created 2026-08-04, from Casey: *"I asked
|
||||
for a Three Finger Tap overlay — a couple of buttons: Move/Resize, Split,
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# 66 — souveraineai.com overhaul
|
||||
|
||||
Status: **shipped and verified 2026-08-10.**
|
||||
Status: **archived 2026-08-17; shipped and verified 2026-08-10.**
|
||||
Owning repo: `souveraine-website` on the LAN forge; served from `/ssd-databases/Souveraine/website` (docker, port 3303).
|
||||
Owner: Rook, under Casey's direction. Casey took the site's identity decision: souveraineai.com presents SouveraineOS, with Souvie as the default agent; the substrate doctrine stays the load-bearing content.
|
||||
|
||||
|
|
@ -19,12 +19,17 @@ useful thing in it.
|
|||
| 11 | souveraine-secrets | **built and committed 2026-07-20.** |
|
||||
| 13 | Active Edge (squeeze) | **done 2026-07-28.** Force 2502–2990 against a 2500 threshold, producer → authority → shell, pocket veto in the middle, opens the dial. Cold-boot handshake check moved to TASK-28. |
|
||||
| 22 | settings fullscreen tweaks | **folded into TASK-19, 2026-07-26.** Its own text sourced its candidates from 19's "still required" list, and its status was a placeholder. |
|
||||
| 24 | [keyboard layout rethink](24-keyboard-layout-rethink.md) | **superseded by TASK-17, archived 2026-08-17.** The reference-led Daily/Terminal layouts replaced the Stevia patch plan; remaining glass and completion work stays with TASK-17. |
|
||||
| 35 | sessiond handler deadlock | **fixed 2026-07-26**, souveraine `4d652bb`. A `MutexGuard` held across an `if let` body; the executor then locked the same non-reentrant mutex. The liveness-reporting half is TASK-08 (f). |
|
||||
| 38 | [pill swipe keyboard swap](38-pill-swipe-osk-swap.md) | **superseded by TASK-17, archived 2026-08-17.** One Squeekboard process owns Daily and Terminal; the discarded process-swap gesture has no remaining work. |
|
||||
| 55 | [the hand's verbs](55-hand-verbs-on-the-glass.md) | **complete in its own scope, archived 2026-08-17.** Sheet, resize, zoom, float, split, close/kill, Home, and dismissal landed. TASK-30/31 own the shared verb-table source. |
|
||||
| 66 | [souveraineai.com overhaul](66-souveraineai-overhaul.md) | **shipped and verified, archived 2026-08-17.** The later rescued divergent prose tree has its own memory task and Casey-owned merge decision. |
|
||||
| 69 | [agent usage, one spine](69-agent-usage-session-daemon.md) | **absorbed into SAF 2026-08-17.** The polling envelope exists; the Rust daemon, aggregate Souveraine usage projection, and any action channel remain explicitly open in `souveraine/saf/surface/05-agent-presence.md`. |
|
||||
| 70 | [the island: agent surfacing](70-the-island-agent-surfacing.md) | **absorbed into SAF 2026-08-17.** Read-only session observation reached source; the rejected fixed-bar placement is gone. Island components wait for the later dynamic phone-bar host; permission control remains unbuilt. |
|
||||
| 72 | [the surfacing pane](72-surfacing-pane-tool-primitives.md) | **absorbed into SAF 2026-08-17.** Typed messages, tool cards, itinerary, footer controls, and resume reached the Panel; owned host, multimodal input, search/fork, and worker extraction remain in SAF surface chapters 04 and 06. |
|
||||
| 75 | [the shell must have a memory budget](75-the-shell-must-have-a-memory-budget.md) | **absorbed into SAF 2026-08-17.** The measurements remain historical and the worker extraction is not built. `souveraine/saf/surface/06-surface-lifetimes.md` now owns the resident/optional architecture and proof. |
|
||||
| — | fix-dock-fullscreen-detection | **superseded 2026-07-21** by `unify-shell-trees-laptop-phone`. The patch is correct but stranded per-device, which is that task's problem. |
|
||||
| — | [unify the shell trees](unify-shell-trees-laptop-phone.md) | **done 2026-07-31, archived 2026-08-17.** Both devices compose from one pinned base plus a declared phone overlay; zero stranded files remained. |
|
||||
| — | unified-device-state-deploy | **done 2026-07-25.** `0.1.r219` installed from the repo, sessiond took the lock, the machine reached `Locked`, forensic log recorded `panel-dim` then `panel-off`. Two checks moved to their owners: proximity-blanks-locked-screen to the sensor tasks, and the cold-boot shell handshake to TASK-28. |
|
||||
|
||||
## `from-substrate/`
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# TASK: Unify the Souveraine shell trees — laptop, phone, SouveraineOS
|
||||
|
||||
**Status:** **DONE — verified 2026-07-31.** Every goal in this file is met.
|
||||
**Status:** **ARCHIVED — done and verified 2026-07-31.** Every goal in this file is met.
|
||||
Zero stranded files; the drift it was filed against is gone; it blocks nothing.
|
||||
Ready to move to `archive/`.
|
||||
Moved to `archive/` 2026-08-17.
|
||||
**Filed:** 2026-07-21
|
||||
|
||||
## Re-measured 2026-07-31 (md5 of every file, both devices)
|
||||
Loading…
Reference in a new issue