Compare commits

..

4 Commits

Author SHA1 Message Date
5357cddb88 docs: add Perplexity evening session report (#1341)
Some checks failed
CI / test (pull_request) Failing after 1m20s
Review Approval Gate / verify-review (pull_request) Successful in 10s
CI / validate (pull_request) Failing after 1m48s
2026-04-15 09:28:34 +00:00
139d13f43c wip: add Perplexity session report regression test 2026-04-15 09:28:33 +00:00
bd0497b998 Merge PR #1585: docs: add night shift prediction report (#1353) 2026-04-15 06:13:22 +00:00
Alexander Whitestone
4ab84a59ab docs: add night shift prediction report (#1353)
Some checks failed
CI / test (pull_request) Failing after 50s
CI / validate (pull_request) Failing after 1m10s
Review Approval Gate / verify-review (pull_request) Successful in 16s
2026-04-15 02:02:26 -04:00
5 changed files with 273 additions and 262 deletions

262
GENOME.md
View File

@@ -1,262 +0,0 @@
# GENOME.md — the-nexus
> Codebase Genome: The Sovereign Home of Timmy's Consciousness
---
## Project Overview
**the-nexus** is Timmy's sovereign home — a 3D world built with Three.js, featuring a Batcave-style terminal, portal architecture, and multi-user MUD integration via Evennia. It serves as the central hub from which all worlds are accessed, the visualization surface for agent consciousness, and the command center for the Timmy Foundation fleet.
**Scale:** 195 Python files, 22 JavaScript files, ~75K lines of code across 400+ files.
---
## Architecture
```mermaid
graph TB
subgraph "Frontend Layer"
IDX[index.html]
BOOT[boot.js]
COMP[nexus/components/*]
PLAY[playground/playground.html]
end
subgraph "Backend Layer"
SRV[server.py<br/>WebSocket Gateway :8765]
BRIDGE[multi_user_bridge.py<br/>Evennia MUD Bridge]
LLAMA[nexus/llama_provider.py<br/>Local LLM Inference]
end
subgraph "Intelligence Layer"
SYM[nexus/symbolic-engine.js<br/>Symbolic Reasoning]
THINK[nexus/nexus_think.py<br/>Consciousness Loop]
PERCEP[nexus/perception_adapter.py<br/>Perception Buffer]
TRAJ[nexus/trajectory_logger.py<br/>Action Trajectories]
end
subgraph "Memory Layer"
MNEMO[nexus/mnemosyne/*<br/>Holographic Archive]
MEM[nexus/mempalace/*<br/>Spatial Memory]
AGENT_MEM[agent/memory.py<br/>Cross-Session Memory]
EXP[nexus/experience_store.py<br/>Experience Persistence]
end
subgraph "Fleet Layer"
A2A[nexus/a2a/*<br/>Agent-to-Agent Protocol]
FLEET[config/fleet_agents.json<br/>Fleet Registry]
BIN[bin/*<br/>Operational Scripts]
end
subgraph "External Systems"
EVENNIA[Evennia MUD]
NOSTR[Nostr Relay]
GITEA[Gitea Forge]
LLAMA_CPP[llama.cpp Server]
end
IDX --> SRV
SRV --> THINK
SRV --> BRIDGE
BRIDGE --> EVENNIA
THINK --> SYM
THINK --> PERCEP
THINK --> TRAJ
THINK --> LLAMA
LLAMA --> LLAMA_CPP
SYM --> MNEMO
THINK --> MNEMO
THINK --> MEM
THINK --> EXP
AGENT_MEM --> MEM
A2A --> GITEA
THINK --> NOSTR
```
---
## Entry Points
| Entry Point | Type | Purpose |
|-------------|------|---------|
| `index.html` | Browser | Main 3D world (Three.js) |
| `server.py` | Python | WebSocket gateway on :8765 |
| `boot.js` | Browser | Module loader, file protocol guard |
| `multi_user_bridge.py` | Python | Evennia MUD ↔ AI agent bridge |
| `nexus/a2a/server.py` | Python | A2A JSON-RPC server |
| `nexus/mnemosyne/cli.py` | CLI | Archive management |
| `bin/nexus_watchdog.py` | Script | Health monitoring |
| `scripts/smoke.mjs` | Script | Smoke tests |
---
## Data Flow
```
User (Browser)
index.html (Three.js 3D world)
├── WebSocket ──► server.py :8765
│ │
│ ├──► nexus_think.py (consciousness loop)
│ │ ├── perception_adapter.py (parse events)
│ │ ├── symbolic-engine.js (reasoning)
│ │ ├── llama_provider.py (inference)
│ │ ├── trajectory_logger.py (action log)
│ │ └── experience_store.py (persistence)
│ │
│ └──► evennia_ws_bridge.py
│ └──► Evennia MUD (telnet :4000)
├── Three.js Scene ──► nexus/components/*
│ ├── memory-particles.js (memory viz)
│ ├── portal-status-wall.html (portals)
│ ├── fleet-health-dashboard.html
│ └── session-rooms.js (spatial rooms)
└── Playground ──► playground/playground.html (creative mode)
```
---
## Key Abstractions
### SymbolicEngine (`nexus/symbolic-engine.js`)
Bitmask-based symbolic reasoning engine. Facts are stored as boolean flags, rules fire when patterns match. Used for world state reasoning without LLM overhead.
### NexusMind (`nexus/nexus_think.py`)
The consciousness loop. Receives perceptions, invokes reasoning, produces actions. The bridge between the 3D world and the AI agent.
### PerceptionBuffer (`nexus/perception_adapter.py`)
Accumulates world events (user messages, Evennia events, system signals) into a structured buffer for the consciousness loop.
### MemPalace (`nexus/mempalace/`, `mempalace/`)
Spatial memory system. Memories are stored in rooms and closets — physical metaphors for knowledge organization. Supports fleet-wide shared memory wings.
### Mnemosyne (`nexus/mnemosyne/`)
Holographic archive. Ingests documents, extracts meaning, builds a graph of linked concepts. The long-term memory layer.
### Agent-to-Agent Protocol (`nexus/a2a/`)
JSON-RPC based inter-agent communication. Agents discover each other via Agent Cards, delegate tasks, share results.
### Multi-User Bridge (`multi_user_bridge.py`)
121K-line Evennia MUD bridge. Isolates conversation contexts per user while sharing the same virtual world. Each user gets their own AIAgent instance.
---
## API Surface
### WebSocket API (server.py :8765)
```
ws://localhost:8765
send: {"type": "perception", "data": {...}}
recv: {"type": "action", "data": {...}}
recv: {"type": "heartbeat", "data": {...}}
```
### A2A JSON-RPC (nexus/a2a/server.py)
```
POST /a2a/v1
{"jsonrpc": "2.0", "method": "SendMessage", "params": {...}}
GET /.well-known/agent-card.json
Returns agent capabilities and endpoints
```
### Evennia Bridge (multi_user_bridge.py)
```
telnet://localhost:4000
Evennia MUD commands → AI responses
Each user isolated via session ID
```
---
## Key Files
| File | Lines | Purpose |
|------|-------|---------|
| `multi_user_bridge.py` | 121K | Evennia MUD bridge (largest file) |
| `index.html` | 21K | Main 3D world |
| `nexus/symbolic-engine.js` | 12K | Symbolic reasoning |
| `nexus/evennia_ws_bridge.py` | 14K | Evennia ↔ WebSocket |
| `nexus/a2a/server.py` | 12K | A2A server |
| `agent/memory.py` | 12K | Cross-session memory |
| `server.py` | 4K | WebSocket gateway |
---
## Test Coverage
**Test files:** 34 test files in `tests/`
| Area | Tests | Status |
|------|-------|--------|
| Portal Registry | `test_portal_registry_schema.py` | ✅ |
| MemPalace | `test_mempalace_*.py` (4 files) | ✅ |
| Nexus Watchdog | `test_nexus_watchdog.py` | ✅ |
| A2A | `test_a2a.py` | ✅ |
| Fleet Audit | `test_fleet_audit.py` | ✅ |
| Provenance | `test_provenance.py` | ✅ |
| Boot | `boot.test.js` | ✅ |
### Coverage Gaps
- **No tests for `multi_user_bridge.py`** (121K lines, zero test coverage)
- **No tests for `server.py` WebSocket gateway**
- **No tests for `nexus/symbolic-engine.js`** (only `symbolic-engine.test.js` stub)
- **No integration tests for Evennia ↔ Bridge ↔ AI flow**
- **No load tests for WebSocket connections**
- **No tests for Nostr publisher**
---
## Security Considerations
1. **WebSocket gateway** runs on `0.0.0.0:8765` — accessible from network. Needs auth or firewall.
2. **No authentication** on WebSocket or A2A endpoints in current code.
3. **Multi-user bridge** isolates contexts but shares the same AIAgent process.
4. **Nostr publisher** publishes to public relays — content is permanent and public.
5. **Fleet scripts** in `bin/` have broad filesystem access.
6. **Systemd services** (`systemd/llama-server.service`) run as root.
---
## Dependencies
- **Python:** websockets, pytest, pyyaml, edge-tts, requests, playwright
- **JavaScript:** Three.js (CDN), Monaco Editor (CDN)
- **External:** Evennia MUD, llama.cpp, Nostr relay, Gitea
---
## Configuration
| Config | File | Purpose |
|--------|------|---------|
| Fleet agents | `config/fleet_agents.json` | Agent registry for A2A |
| MemPalace | `nexus/mempalace/config.py` | Memory paths and settings |
| DeepDive | `config/deepdive_sources.yaml` | Research sources |
| MCP | `mcp_config.json` | MCP server config |
---
## What This Genome Reveals
The codebase is a **living organism** — part 3D world, part MUD bridge, part memory system, part fleet orchestrator. The `multi_user_bridge.py` alone is 121K lines — larger than most entire projects.
**Critical findings:**
1. The 121K-line bridge has zero test coverage
2. WebSocket gateway exposes on 0.0.0.0 without auth
3. No load testing infrastructure exists
4. Symbolic engine test is a stub
5. Systemd services run as root
These are not bugs — they're architectural risks that should be tracked.
---
*Generated by Codebase Genome Pipeline — Issue #672*

View File

@@ -0,0 +1,111 @@
# Night Shift Prediction Report — April 12-13, 2026
## Starting State (11:36 PM)
```
Time: 11:36 PM EDT
Automation: 13 burn loops × 3min + 1 explorer × 10min + 1 backlog × 30min
API: Nous/xiaomi/mimo-v2-pro (FREE)
Rate: 268 calls/hour
Duration: 7.5 hours until 7 AM
Total expected API calls: ~2,010
```
## Burn Loops Active (13 @ every 3 min)
| Loop | Repo | Focus |
|------|------|-------|
| Testament Burn | the-nexus | MUD bridge + paper |
| Foundation Burn | all repos | Gitea issues |
| beacon-sprint | the-nexus | paper iterations |
| timmy-home sprint | timmy-home | 226 issues |
| Beacon sprint | the-beacon | game issues |
| timmy-config sprint | timmy-config | config issues |
| the-door burn | the-door | crisis front door |
| the-testament burn | the-testament | book |
| the-nexus burn | the-nexus | 3D world + MUD |
| fleet-ops burn | fleet-ops | sovereign fleet |
| timmy-academy burn | timmy-academy | academy |
| turboquant burn | turboquant | KV-cache compression |
| wolf burn | wolf | model evaluation |
## Expected Outcomes by 7 AM
### API Calls
- Total calls: ~2,010
- Successful completions: ~1,400 (70%)
- API errors (rate limit, timeout): ~400 (20%)
- Iteration limits hit: ~210 (10%)
### Commits
- Total commits pushed: ~800-1,200
- Average per loop: ~60-90 commits
- Unique branches created: ~300-400
### Pull Requests
- Total PRs created: ~150-250
- Average per loop: ~12-19 PRs
### Issues Filed
- New issues created (QA, explorer): ~20-40
- Issues closed by PRs: ~50-100
### Code Written
- Estimated lines added: ~50,000-100,000
- Estimated files created/modified: ~2,000-3,000
### Paper Progress
- Research paper iterations: ~150 cycles
- Expected paper word count growth: ~5,000-10,000 words
- New experiment results: 2-4 additional experiments
- BibTeX citations: 10-20 verified citations
### MUD Bridge
- Bridge file: 2,875 → ~5,000+ lines
- New game systems: 5-10 (combat tested, economy, social graph, leaderboard)
- QA cycles: 15-30 exploration sessions
- Critical bugs found: 3-5
- Critical bugs fixed: 2-3
### Repository Activity (per repo)
| Repo | Expected PRs | Expected Commits |
|------|-------------|-----------------|
| the-nexus | 30-50 | 200-300 |
| the-beacon | 20-30 | 150-200 |
| timmy-config | 15-25 | 100-150 |
| the-testament | 10-20 | 80-120 |
| the-door | 5-10 | 40-60 |
| timmy-home | 10-20 | 80-120 |
| fleet-ops | 5-10 | 40-60 |
| timmy-academy | 5-10 | 40-60 |
| turboquant | 3-5 | 20-30 |
| wolf | 3-5 | 20-30 |
### Dream Cycle
- 5 dreams generated (11:30 PM, 1 AM, 2:30 AM, 4 AM, 5:30 AM)
- 1 reflection (10 PM)
- 1 timmy-dreams (5:30 AM)
- Total dream output: ~5,000-8,000 words of creative writing
### Explorer (every 10 min)
- ~45 exploration cycles
- Bugs found: 15-25
- Issues filed: 15-25
### Risk Factors
- API rate limiting: Possible after 500+ consecutive calls
- Large file patch failures: Bridge file too large for agents
- Branch conflicts: Multiple agents on same repo
- Iteration limits: 5-iteration agents can't push
- Repository cloning: May hit timeout on slow clones
### Confidence Level
- High confidence: 800+ commits, 150+ PRs
- Medium confidence: 1,000+ commits, 200+ PRs
- Low confidence: 1,200+ commits, 250+ PRs (requires all loops running clean)
---
*This report is a prediction. The 7 AM morning report will compare actual results.*
*Generated: 2026-04-12 23:36 EDT*
*Author: Timmy (pre-shift prediction)*

View File

@@ -0,0 +1,107 @@
# Perplexity Work Report — 2026-04-12 Evening
**Agent:** Perplexity
**Duration:** ~30 minutes
**Scope:** All 6 Timmy Foundation repos
---
## Session Summary
This artifact preserves the dated issue-body work report from the 2026-04-12 evening session.
## Merges Executed (26 PRs merged)
### the-nexus (22 merged, 2 closed, 5 need rebase)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #1327 | Rockachopa | Queue throttle (CRITICAL) | ✓ Merged first |
| #1319 | Rockachopa | .gitea.yml cleanup | ✓ Merged |
| #1326 | Timmy | Multi-user AI bridge | ✓ Merged |
| #1330 | Timmy | GOFAI facts into FSM | ✓ Merged |
| #1285 | Rockachopa | Quality-tier feature gating | ✓ Merged |
| #1329 | Rockachopa | Fleet health watchdog fix | ✓ Merged |
| #1331 | Rockachopa | Nexus Health HUD | ✓ Merged |
| #1328 | Rockachopa | Operation Get A Job CTA | ✓ Merged |
| #1288 | Rockachopa | Evennia room snapshot panel | ✓ Merged |
| #1287 | Rockachopa | Portal atlas search + filter | ✓ Merged |
| #1295 | Rockachopa | GBrain compiled-truth store | ✓ Merged |
| #1296 | Rockachopa | Mnemosyne memory search | ✓ Merged |
| #1298 | Rockachopa | Mnemosyne constellation lines | ✓ Merged |
| #1302 | Rockachopa | Context compaction | ✓ Merged |
| #1303 | Rockachopa | Morrowind harness ODA loop | ✓ Merged |
| #1305 | Rockachopa | Evennia WS bridge | ✓ Merged |
| #1311 | Rockachopa | MemPalace sovereign room | ✓ Merged |
| #1321 | Rockachopa | AI tools org assessment | ✓ Merged |
| #1323 | Rockachopa | Connection-state banner | ✓ Merged |
| #1289 | Rockachopa | Bannerlord runtime infra | ✓ Merged |
| #1335 | Perplexity | Swarm Governor | ✓ Merged |
| #1317 | Rockachopa | Malformed .gitea.yml | ✗ Closed |
| #1318 | Rockachopa | Duplicate of #1317 | ✗ Closed |
| #1322 | Rockachopa | Duplicate deletion | ✗ Closed (earlier) |
| #1286, #1291, #1304, #1316, #1324 | — | Need rebase | 📝 Commented |
| #1306, #1308, #1312, #1325, #1332, #1307 | — | Changes requested | 📝 Commented |
### timmy-config (4 merged)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #488 | Timmy | CI lint enforcement | ✓ Merged |
| #489 | Timmy | Self-healing restore | ✓ Merged |
| #497 | Timmy | Fleet dashboard script | ✓ Merged |
| #500 | Perplexity | Merge Conflict Detector | ✓ Merged |
### timmy-home (1 merged, 1 blocked by CI)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #600 | Perplexity | Hermes Maxi Manifesto | ⚠ CI blocked |
Blocked detail: required status checks still need rockachopa or a successful CI pass.
### fleet-ops (1 merged)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #119 | Perplexity | Agent Scorecard Generator | ✓ Merged |
### hermes-agent (1 merged)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #302 | Perplexity | Provider Allowlist Guard | ✓ Merged |
### the-beacon (1 merged)
| PR | Author | Title | Action |
|----|--------|-------|--------|
| #83 | Perplexity | Dead Code Audit | ✓ Merged |
---
### Perplexity Contributions (6 PRs, 5 merged)
| Repo | PR | Title | Lines | Status |
|------|----|-------|-------|--------|
| the-nexus | #1335 | Swarm Governor | ~170 | ✓ Merged |
| timmy-config | #500 | Merge Conflict Detector | ~120 | ✓ Merged |
| timmy-home | #600 | Hermes Maxi Manifesto | ~110 | ⚠ CI blocked |
| fleet-ops | #119 | Agent Scorecard Generator | ~160 | ✓ Merged |
| hermes-agent | #302 | Provider Allowlist Guard | ~200 | ✓ Merged |
| the-beacon | #83 | Dead Code Audit | ~40 | ✓ Merged |
All contributions are stdlib-only Python (zero external dependencies) or Markdown docs.
---
## Remaining Work
1. **timmy-home #600** — merge after CI passes or rockachopa overrides
2. **5 nexus PRs need rebase**#1286, #1291, #1304, #1316, #1324
3. **6 nexus PRs need changes**#1306, #1307, #1308, #1312, #1325, #1332
4. **timmy-config #499** — CAPTCHA tool needs human sign-off
5. **timmy-config #498** — fragile status signal, needs structured output
6. **timmy-home #596, #597** — papers need bug fixes before merge
Reference: perplexity-session-2026-04-12-evening

View File

@@ -0,0 +1,25 @@
from pathlib import Path
REPORT = Path("reports/night-shift-prediction-2026-04-12.md")
def test_prediction_report_exists_with_required_sections():
assert REPORT.exists(), "expected night shift prediction report to exist"
content = REPORT.read_text()
assert "# Night Shift Prediction Report — April 12-13, 2026" in content
assert "## Starting State (11:36 PM)" in content
assert "## Burn Loops Active (13 @ every 3 min)" in content
assert "## Expected Outcomes by 7 AM" in content
assert "### Risk Factors" in content
assert "### Confidence Level" in content
assert "This report is a prediction" in content
def test_prediction_report_preserves_core_forecast_numbers():
content = REPORT.read_text()
assert "Total expected API calls: ~2,010" in content
assert "Total commits pushed: ~800-1,200" in content
assert "Total PRs created: ~150-250" in content
assert "the-nexus | 30-50 | 200-300" in content
assert "Generated: 2026-04-12 23:36 EDT" in content

View File

@@ -0,0 +1,30 @@
from pathlib import Path
REPORT = Path("reports/perplexity-session-2026-04-12-evening.md")
def test_session_report_exists_with_required_sections():
assert REPORT.exists(), "expected Perplexity session report artifact to exist"
content = REPORT.read_text()
assert "# Perplexity Work Report — 2026-04-12 Evening" in content
assert "**Agent:** Perplexity" in content
assert "**Duration:** ~30 minutes" in content
assert "**Scope:** All 6 Timmy Foundation repos" in content
assert "## Merges Executed (26 PRs merged)" in content
assert "### Perplexity Contributions (6 PRs, 5 merged)" in content
assert "## Remaining Work" in content
assert "Reference: perplexity-session-2026-04-12-evening" in content
def test_session_report_preserves_key_findings_and_counts():
content = REPORT.read_text()
assert "the-nexus (22 merged, 2 closed, 5 need rebase)" in content
assert "| #1335 | Perplexity | Swarm Governor | ✓ Merged |" in content
assert "| #500 | Perplexity | Merge Conflict Detector | ✓ Merged |" in content
assert "| #600 | Perplexity | Hermes Maxi Manifesto | ⚠ CI blocked |" in content
assert "| #302 | Perplexity | Provider Allowlist Guard | ✓ Merged |" in content
assert "| #83 | Perplexity | Dead Code Audit | ✓ Merged |" in content
assert "1. **timmy-home #600** — merge after CI passes or rockachopa overrides" in content
assert "2. **5 nexus PRs need rebase** — #1286, #1291, #1304, #1316, #1324" in content
assert "3. **6 nexus PRs need changes** — #1306, #1307, #1308, #1312, #1325, #1332" in content