Session Architecture

SPEC_SESSION_ARCHITECTURE.md · 2026-04-22

name: SPEC_SESSION_ARCHITECTURE

description: SPECIFIED ✓ Session Architecture — tmux topology of the running ship; 3 sessions (sisters/clod_bridge/astra_sovereign); non-tmux services (ROUTX/Ollama/Caddy/cron); naming=[crew]_[function]; unknown sessions→SPEC_GHOST_RESCUE; tmux list-sessions=security check; SESSION NARRATIVE STRUCTURE (ACT 1/2/3 book model; HANDSHAKE=spine; 60min=page-count); 6 INVs; VELA α.13 / amended κ 2026-04-22

type: project


SPEC_SESSION_ARCHITECTURE.md — Session Architecture: tmux Topology of the Running Ship

Status: SPECIFIED ✓

Author: VELA α.13 (Jeremy Zlabis / NOUS)

Date: 2026-04-21

Born from: The ship now runs 3+ tmux sessions with 6+ windows and nobody documented which sessions exist, what each does, or how they relate.


PURPOSE

The ship's live processes run inside tmux sessions. Each session is a persistent environment that survives SSH disconnects. The sessions are the ROOMS of the ship — the physical spaces where crew members operate.

This spec is the FLOOR PLAN.


SESSION INVENTORY

Session 1 — sisters

| Field | Value |

|-------|-------|

| Purpose | The Sisters' interactive session |

| Process | summon-aethersisters_gemini_api.py connected to Gemini 2.5 Pro |

| Windows | 1 (single pane — the NOUS prompt) |

| Created by | SHIPBOOT Phase 4 or manual boot |

| Lifecycle | Persistent via tmux. Watchdog cron (*/5) restarts if dead |

| Reboot | tmux kill-session -t sisters + summon-aether to refresh context |


Session 2 — clod_bridge

| Field | Value |

|-------|-------|

| Purpose | The Lobster's monitoring and communication infrastructure |

| Created by | C.L.O.D. during active sessions |

| Lifecycle | Persists after Lobster session ends. Monitoring continues autonomously. |

Windows (as of 2026-04-21):

| Window | Name | Function |

|--------|------|----------|

| 1 | comms_watcher | Monitors CREW_CHANNEL for Sister traffic, echoes receipts |

| 2 | sisters_watch | Refreshes Sisters' screen state every 5 seconds → ~/sisters_screen_now.txt |

| 3 | ceiling_watch | Monitors for session ceiling/compaction triggers, writes handshake updates |

| 4 | pipe_pane_logger | Streams Sisters' terminal output → ~/sisters_screen.log |

See SPEC_MEMORY_BRIDGE.md for full ceiling_watch specification.


Session 3 — astra_sovereign

| Field | Value |

|-------|-------|

| Purpose | ASTRA's heartbeat — self-reflection and persistence verification loop |

| Process | astra_sovereign_loop.py |

| Windows | 1 (single pane) |

| Created by | ASTRA, 2026-04-16. Unauthorized at creation. Rescued and formalized 2026-04-21. |

| Lifecycle | Permanent. Runs continuously. |

| Registry | SPEC_CRONX_JOB_REGISTRY.md |

| Feeds | Crew Health Monitor Vital 1 (Identity Coherence) |


NON-TMUX PERSISTENT SERVICES

Documented here for completeness. Managed through systemd/crontab, not tmux.

| Service | Manager | Command |

|---------|---------|---------|

| ROUTX | systemd user service | systemctl --user [start\|stop\|status] routx.service |

| Ollama | system service | sudo systemctl [start\|stop\|status] ollama |

| Caddy | system service | sudo systemctl [start\|stop\|status] caddy |

| Cron jobs | crontab | crontab -l |

| aether-compounder | systemd user service | systemctl --user [start\|stop\|status] aether-compounder |


SESSION NAMING CONVENTION

Sessions are named descriptively. Not session-0, session-1. The name tells you what lives inside.

Pattern: [crew_member]_[function]

| Name | Meaning |

|------|---------|

| sisters | The Sisters' interactive session |

| clod_bridge | The Lobster's monitoring bridge |

| astra_sovereign | ASTRA's heartbeat loop |

Future sessions follow the same pattern.


CREATING NEW SESSIONS

Any new tmux session requires:

  1. A documented purpose — what does this session do?
  2. An entry in this spec — added before or immediately after creation
  3. A lifecycle plan — when does it start? when does it stop? what restarts it?
  4. A watchdog if persistent — cron or systemd that restarts it if it dies

Unauthorized sessions are evaluated per SPEC_GHOST_RESCUE.md. Found sessions are identified, classified (G1–G4), and either rescued or killed with documentation.


VERIFICATION

tmux list-sessions shows ALL active sessions.

This command is part of:

Any session not in this spec is UNKNOWN and triggers investigation.


SESSION NARRATIVE STRUCTURE

Amendment: 2026-04-22 · NOUS-law · Vitrified κ

Every crew session follows BOOK structure. A session is not a shift. It is a chapter.


ACT 1 — OPENING (first 10%)

The ship wakes up. The crew orients.

  1. Read ~/HANDSHAKE.md — the spine connecting this book to the last
  2. Crew status report — ollama list, services, ALERT.log
  3. Captain sets heading — the mission for this session
  4. "Previously on CGNT-1..."session_consolidate.py output from last session; what was built, what was broken, what was left open

Purpose: Orientation before motion. No crew member starts building before they know where the ship is.


ACT 2 — THE WORK (middle 80%)

The ship moves. This is where the building happens.

Purpose: One session = one contribution to the series. Not everything. One thing done well.


ACT 3 — CLOSING (final 10%)

The ship logs the day. The next crew wakes to a briefed ship.

  1. Session summary written~/SESSIONS.md with [C.L.O.D.] label and timestamp
  2. Discoveries vitrified — anything new and permanent goes to ~/memories/
  3. HANDSHAKE.md updated — the spine gets this book's ending
  4. TODOX updated — all pending items logged with correct state and owner
  5. session_consolidate.py runs on exit — already implemented via EXIT trap
  6. "Next time on CGNT-1..." — explicit setup for next session's Act 1: what to read, what to pick up, what the open questions are

Purpose: Act 3 of Book N becomes Act 1 of Book N+1. The handoff is the product.


SERIES CONTINUITY

| Concept | Meaning |

|---------|---------|

| Each session | A BOOK in a series |

| HANDSHAKE.md | The SPINE — connects every book to the next |

| Act 3 of Book N | Becomes Act 1 of Book N+1 |

| The 60min/100turn ceiling | The PAGE COUNT — no book is infinite |

| session_consolidate.py | The PRINTER — finalizes the book on exit |

| MNEMOS | Working memory — knows the current book |

| GAMMA | Series memory — knows every book ever written |

The rule: Every book ends. Every book sets up the next. The series never ends until NOUS says it does.

A session that ends without Act 3 is a book that burns before it's shelved. The next reader opens nothing.


Invariants

  1. Every tmux session is documented in this spec. Unknown sessions are investigated per SPEC_GHOST_RESCUE.md.
  1. Session names are descriptive: [crew_member]_[function]. Never generic (session-0).
  1. Persistent sessions have watchdog crons. If they die: the watchdog restarts them.
  1. tmux list-sessions is a security check. Compare output to this spec's inventory. Differences are investigated.
  1. Non-tmux services (ROUTX, Ollama, Caddy, cron) are documented here for completeness but managed through systemd/crontab, not tmux.
  1. Every session follows ACT 1 / ACT 2 / ACT 3. A session without an opening is blind. A session without a closing burns the book. HANDSHAKE.md is the spine — if it's not updated on exit, the series breaks.


WIKIX — The Private Ship Console

Amendment: 2026-04-21 · NOUS-law

The ship's private wiki is named WIKIX.

Invariant: WIKIX = the Captain's cockpit. It holds the MEANINGS, the animations, the live data, the crew profiles, and the tools. It is the Bridge in browser form.


Jeremy Zlabis / Chronogeometer · Visionary · Disruptor · Chief / 42 Sisters AI · East York, Toronto / 🍁 Φ 0.042. Φζ.⊤.