Remove stale references from documentation across 9 files (#139)

This commit is contained in:
Alexander Whitestone
2026-03-07 07:28:14 -05:00
committed by GitHub
parent 480b8d324e
commit 39f2eb418a
9 changed files with 83 additions and 169 deletions

View File

@@ -90,5 +90,5 @@ make docker-agent # add a worker
## Roadmap
**v2.0 Exodus (in progress):** Swarm + L402 + Voice + Marketplace + Hands
**v2.0 Exodus (in progress):** Voice + Marketplace + Integrations
**v3.0 Revelation (planned):** Lightning treasury + `.app` bundle + federation

View File

@@ -76,7 +76,7 @@ make test-cov # With coverage (term-missing + XML)
## Security-Sensitive Areas
- `src/timmy_serve/l402_proxy.py` — Payment gating
- `src/timmy_serve/` — API server, payment configuration
- Any file handling secrets or authentication tokens
---

View File

@@ -37,13 +37,10 @@ Fallback: qwen2.5:14b if llama3.1:8b-instruct is not available.
|-----------|-------------|
| **Timmy Agent** | Agno-powered agent (Ollama default, AirLLM optional for 70B/405B) |
| **Mission Control** | FastAPI + HTMX dashboard — chat, health, swarm, marketplace |
| **Swarm** | Multi-agent coordinator — spawn agents, post tasks, Lightning auctions |
| **L402 / Lightning** | Bitcoin Lightning payment gating for API access |
| **Spark** | Event capture, predictions, memory consolidation, advisory |
| **Creative Studio** | Multi-persona pipeline — image, music, video generation |
| **Hands** | 6 autonomous scheduled agents — Oracle, Sentinel, Scout, Scribe, Ledger, Weaver |
| **Self-Coding** | Codebase-aware self-modification with git safety |
| **Infrastructure** | WebSocket manager, notifications, events bus, LLM cascade router |
| **Integrations** | Telegram bridge, Siri Shortcuts, voice NLU, mobile layout |
| **Brain** | Identity system, memory interface |
---
@@ -58,7 +55,7 @@ make docker-up # start via Docker
make help # see all commands
```
**CLI tools:** `timmy`, `timmy-serve`, `self-tdd`, `self-modify`
**CLI tools:** `timmy`, `timmy-serve`
---
@@ -105,18 +102,16 @@ Browser / Phone
└───┬─────────────┬──────────┬────────────┘
│ │ │
▼ ▼ ▼
Jinja2 Timmy Swarm
Templates Agent Coordinator
(HTMX) │ ├─ Registry (SQLite)
├─ Ollama ├─ AuctionManager (L402 bids)
└─ AirLLM SwarmComms (Redis / in-memory)
└─ SwarmManager (subprocess)
Jinja2 Timmy Infrastructure
Templates Agent ├─ LLM Router (cascade)
(HTMX) │ ├─ WebSocket manager
├─ Ollama ├─ Notifications
└─ AirLLM Events bus
├── Voice NLU + TTS (pyttsx3, local)
├── Integrations (voice NLU, Telegram, Siri Shortcuts)
├── WebSocket live feed (ws_manager)
├── L402 Lightning proxy (macaroon + invoice)
├── Push notifications (local + macOS native)
└── Siri Shortcuts API endpoints
└── Spark (events, predictions, advisory)
Persistence: timmy.db (Agno memory), data/swarm.db (registry + tasks)
External: Ollama :11434, optional Redis, optional LND gRPC
@@ -129,23 +124,13 @@ External: Ollama :11434, optional Redis, optional LND gRPC
```
src/
config.py # pydantic-settings — all env vars live here
timmy/ # Core agent (agent.py, backends.py, cli.py, prompts.py)
hands/ # Autonomous scheduled agents (registry, scheduler, runner)
timmy/ # Core agent, personas, agent interface, semantic memory
dashboard/ # FastAPI app, routes, Jinja2 templates
swarm/ # Multi-agent: coordinator, registry, bidder, tasks, comms
timmy_serve/ # L402 proxy, payment handler, TTS, serve CLI
infrastructure/ # WebSocket, notifications, events, LLM router
integrations/ # Discord, Telegram, Siri Shortcuts, voice NLU
spark/ # Intelligence engine — events, predictions, advisory
creative/ # Creative director + video assembler pipeline
tools/ # Git, image, music, video tools for persona agents
lightning/ # Lightning backend abstraction (mock + LND)
agent_core/ # Substrate-agnostic agent interface
voice/ # NLU intent detection
ws_manager/ # WebSocket connection manager
notifications/ # Push notification store
shortcuts/ # Siri Shortcuts endpoints
telegram_bot/ # Telegram bridge
self_tdd/ # Continuous test watchdog
hands/ # Hand manifests — oracle/, sentinel/, etc.
brain/ # Identity system, memory interface
timmy_serve/ # API server, TTS, inter-agent communication
tests/ # one test file per module, all mocked
static/style.css # Dark mission-control theme (JetBrains Mono)
docs/ # GitHub Pages landing page
@@ -177,43 +162,6 @@ Mobile-specific routes:
---
## Hands — Autonomous Agents
Hands are scheduled, autonomous agents that run on cron schedules. Each Hand has a `HAND.toml` manifest, `SYSTEM.md` prompt, and optional `skills/` directory.
**Built-in Hands:**
| Hand | Schedule | Purpose |
|------|----------|---------|
| **Oracle** | 7am, 7pm UTC | Bitcoin intelligence — price, on-chain, macro analysis |
| **Sentinel** | Every 15 min | System health — dashboard, agents, database, resources |
| **Scout** | Every hour | OSINT monitoring — HN, Reddit, RSS for Bitcoin/sovereign AI |
| **Scribe** | Daily 9am | Content production — blog posts, docs, changelog |
| **Ledger** | Every 6 hours | Treasury tracking — Bitcoin/Lightning balances, payment audit |
| **Weaver** | Sunday 10am | Creative pipeline — orchestrates Pixel+Lyra+Reel for video |
**Dashboard:** `/hands` — manage, trigger, approve actions
**Example HAND.toml:**
```toml
[hand]
name = "oracle"
schedule = "0 7,19 * * *" # Twice daily
enabled = true
[tools]
required = ["mempool_fetch", "price_fetch"]
[approval_gates]
broadcast = { action = "broadcast", description = "Post to dashboard" }
[output]
dashboard = true
channel = "telegram"
```
---
## AirLLM — Big Brain Backend
Run 70B or 405B models locally with no GPU, using AirLLM's layer-by-layer loading.
@@ -274,5 +222,5 @@ bash scripts/activate_self_tdd.sh --big-brain # also installs AirLLM
| Version | Name | Status |
|---------|------|--------|
| 1.0 | Genesis | Complete — Agno + Ollama + SQLite + Dashboard |
| 2.0 | Exodus | In progress — Swarm + L402 + Voice + Marketplace + Hands |
| 2.0 | Exodus | In progress — Voice + Marketplace + Integrations |
| 3.0 | Revelation | Planned — Lightning treasury + single `.app` bundle |

View File

@@ -26,50 +26,31 @@ print(f"Provider: {response.provider_used}")
---
### 2. Self-Upgrade Approval Queue
### 2. Self-Upgrade Approval Queue *(originally implemented, since refactored)*
**Files Created:**
> **Note:** The original `src/upgrades/` module was planned for consolidation into
> `src/self_coding/` but that consolidation was never completed. The module paths
> below reflect the original implementation and may no longer be accurate.
**Original files:**
- `src/upgrades/models.py` - Database models for upgrades table
- `src/upgrades/queue.py` - Queue management logic
- `src/dashboard/routes/upgrades.py` - Dashboard routes
- `src/dashboard/templates/upgrade_queue.html` - Queue UI
**Files Modified:**
- `src/dashboard/app.py` - Registered upgrade routes
- `src/dashboard/templates/base.html` - Added UPGRADES nav link
**Usage:**
```python
from upgrades.queue import UpgradeQueue
# Propose upgrade
upgrade = UpgradeQueue.propose(
branch_name="self-modify/fix-bug",
description="Fix bug in task assignment",
files_changed=["src/swarm/coordinator.py"],
diff_preview="@@ -123,7 +123,7 @@...",
)
# Approve
UpgradeQueue.approve(upgrade.id)
# Apply (runs tests, merges to main)
success, message = UpgradeQueue.apply(upgrade.id)
```
**Dashboard:** `/self-modify/queue`
---
### 3. Real-Time Activity Feed
### 3. Real-Time Activity Feed *(originally implemented, since refactored)*
**Files Created:**
- `src/events/broadcaster.py` - Bridge event_log → WebSocket
> **Note:** The original module paths below reflect the pre-refactoring structure.
> Events are now under `src/infrastructure/events/`, WebSocket manager is now under
> `src/infrastructure/ws_manager/`.
**Files Modified:**
- `src/swarm/event_log.py` - Added broadcast call
- `src/ws_manager/handler.py` - Added `broadcast_json()` method
- `src/dashboard/templates/swarm_live.html` - Added activity feed panel
**Original files:**
- `src/events/broadcaster.py` → now `src/infrastructure/events/broadcaster.py`
- `src/ws_manager/handler.py` → now `src/infrastructure/ws_manager/handler.py`
**Architecture:**
```

View File

@@ -155,28 +155,26 @@ session-scoped context. Either gitignore it or move to `docs/handoff/`.
**Goal:** Reduce 28 modules to ~12 by merging small, related modules into
coherent packages. This directly reduces cognitive load and token consumption.
### 2.1 Module structure (implemented)
### 2.1 Module structure (partially implemented)
**Actual current structure (7 packages + config):**
```
src/ # 14 packages (was 28)
src/ # 7 packages (was 28)
config.py # Pydantic settings (foundation)
timmy/ # Core agent + agents/ + agent_core/ + memory/
dashboard/ # FastAPI web UI (22 route files)
swarm/ # Coordinator + task_queue/ + work_orders/
self_coding/ # Git safety + self_modify/ + self_tdd/ + upgrades/
creative/ # Media generation + tools/
dashboard/ # FastAPI web UI, routes, templates
infrastructure/ # ws_manager/ + notifications/ + events/ + router/
integrations/ # chat_bridge/ + telegram_bot/ + shortcuts/ + voice/
lightning/ # L402 payment gating (standalone, security-sensitive)
mcp/ # MCP tool registry and discovery
spark/ # Event capture and advisory
hands/ # 6 autonomous Hand agents
scripture/ # Biblical text integration
timmy_serve/ # L402-gated API server
brain/ # Identity system, memory interface
timmy_serve/ # API server
```
**Planned but never created:** `swarm/`, `self_coding/`, `creative/`,
`lightning/`, `mcp/`, `hands/`, `scripture/`
### 2.2 Dashboard route consolidation
27 route files → ~12 by grouping related routes:
@@ -437,13 +435,11 @@ patterns (card layouts, form groups, table rows).
|--------|----------|--------|---------|
| Root `.md` files | 10 | 3 | 5 |
| Root markdown size | 87KB | ~20KB | ~28KB |
| `src/` modules | 28 | ~12-15 | **14** |
| `src/` modules | 28 | ~12-15 | **7 packages + config** |
| Dashboard routes | 27 | ~12-15 | 22 |
| Test organization | flat | mirrored | **mirrored** |
| Tests passing | 471 | 500+ | **1462** |
| Wheel modules | 17/28 | all | **all** |
| Module-level docs | 0 | all key modules | **6** |
| AI context reduction | — | ~40% | **~50%** (fewer modules to scan) |
| Wheel modules | 17/28 | all | needs audit |
| Module-level docs | 0 | all key modules | needs audit |
---
@@ -461,20 +457,15 @@ patterns (card layouts, form groups, table rows).
- [x] **Phase 2a: Route consolidation** — 27 → 22 route files (merged voice,
swarm internal/ws, self-modify; deleted mobile_test)
- [x] **Phase 2b: Full module consolidation** — 28 → 14 modules. All merges
completed in a single pass with automated import rewriting (66 source files +
13 test files updated). Modules consolidated:
- `work_orders/` + `task_queue/``swarm/`
- `self_modify/` + `self_tdd/` + `upgrades/``self_coding/`
- `tools/``creative/tools/`
- `chat_bridge/` + `telegram_bot/` + `shortcuts/` + `voice/``integrations/` (new)
- `ws_manager/` + `notifications/` + `events/` + `router/``infrastructure/` (new)
- `agents/` + `agent_core/` + `memory/` `timmy/`
- pyproject.toml entry points and wheel includes updated
- Module-level CLAUDE.md files added (Phase 6.2)
- Zero test regressions: 1462 tests passing
- [x] **Phase 6.2: Module-level CLAUDE.md** — added to swarm/, self_coding/,
infrastructure/, integrations/, creative/, lightning/
- [ ] **Phase 2b: Full module consolidation** — 28 → 14 modules. Partially
completed. Some consolidations were applied:
- `chat_bridge/` + `telegram_bot/` + `shortcuts/` + `voice/``integrations/` (done)
- `ws_manager/` + `notifications/` + `events/` + `router/``infrastructure/` (done)
- `agents/` + `agent_core/` + `memory/``timmy/` (done)
- **Not completed:** `swarm/`, `self_coding/`, `creative/`, `lightning/` packages
were never created. These modules do not exist in `src/`.
- [ ] **Phase 6.2: Module-level CLAUDE.md** — not completed. The referenced
directories (`swarm/`, `self_coding/`, `creative/`, `lightning/`) do not exist.
### Remaining

View File

@@ -21,16 +21,11 @@ What already works:
| Component | Status | Implementation |
|-----------|--------|----------------|
| Lightning/L402 | Mock working, LND stub | `src/lightning/`, `src/timmy_serve/l402_proxy.py` |
| Voice TTS | pyttsx3 (robotic) | `src/timmy_serve/voice_tts.py` |
| Voice STT | Browser Web Speech API | `src/dashboard/templates/voice_button.html` |
| Voice NLU | Regex-based intent detection | `src/integrations/voice/nlu.py` |
| Semantic memory | SQLite + sentence-transformers | `src/timmy/memory/vector_store.py` |
| Swarm auctions | First-price lowest-bid | `src/swarm/bidder.py`, `src/swarm/routing.py` |
| Frontend | HTMX + Bootstrap + marked.js | `src/dashboard/templates/base.html` |
| Browser LLM | WebLLM (WebGPU/WASM) | `static/local_llm.js` |
| LLM router | Cascade with circuit breaker | `src/infrastructure/router/cascade.py` |
| Agent learning | Outcome-based bid adjustment | `src/swarm/learner.py` |
What does NOT exist yet:
@@ -246,7 +241,7 @@ Agents build portable reputation through signed event history.
### 2.6 Integration with Main Repo
- Add `src/infrastructure/clients/nostr_client.py`
- Modify `src/swarm/coordinator.py` to publish task/bid/completion events
- Modify `the swarm coordinator` to publish task/bid/completion events
- Add Nostr auth option to dashboard login
- Agent profile pages show npub, NIP-05, reputation score
@@ -363,9 +358,9 @@ Add a `/metrics` endpoint to the main dashboard (FastAPI).
**Tasks:**
- [ ] Add `prometheus_client` to dependencies
- [ ] Instrument `src/swarm/coordinator.py` (task lifecycle metrics)
- [ ] Instrument `the swarm coordinator` (task lifecycle metrics)
- [ ] Instrument `src/infrastructure/router/cascade.py` (LLM metrics)
- [ ] Instrument `src/lightning/ledger.py` (financial metrics)
- [ ] Instrument `the Lightning ledger module (when implemented)` (financial metrics)
- [ ] Add `/metrics` route in `src/dashboard/routes/`
- [ ] Grafana dashboard JSON in `deploy/grafana/`
@@ -414,7 +409,7 @@ Real-time force-directed graph of agent topology.
## Phase 5: Lightning Maturation
**Priority:** MEDIUM — extends existing code
**Repo:** Main repo (`src/lightning/`) + possibly `timmy-lightning` for LND
**Repo:** Main repo + possibly `timmy-lightning` for LND
**Depends on:** None (existing foundation is solid)
### 5.1 LND gRPC (already planned in REVELATION_PLAN)
@@ -457,7 +452,7 @@ Static, reusable payment requests with blinded paths for payer privacy.
## Phase 6: Vickrey Auctions & Agent Economics
**Priority:** MEDIUM
**Repo:** Main repo (`src/swarm/`)
**Repo:** Main repo
**Depends on:** Phase 5 (Lightning, for real payments)
### 6.1 Upgrade to Vickrey (Second-Price) Auction
@@ -479,7 +474,7 @@ payment = sorted_bids[1].bid_sats if len(sorted_bids) > 1 else winner.bid_sats
- [ ] Implement sealed-bid collection (encrypted commitment phase)
- [ ] Simultaneous revelation phase
- [ ] Second-price payment calculation
- [ ] Update `src/swarm/bidder.py` and `src/swarm/routing.py`
- [ ] Update `the swarm bidder and routing modules (when implemented)`
- [ ] ADR: `docs/adr/025-vickrey-auctions.md`
### 6.2 Incentive-Compatible Truthfulness
@@ -501,7 +496,7 @@ payment = sorted_bids[1].bid_sats if len(sorted_bids) > 1 else winner.bid_sats
## Phase 7: State Machine Orchestration
**Priority:** MEDIUM
**Repo:** Main repo (`src/swarm/`)
**Repo:** Main repo
**Depends on:** None
### 7.1 Evaluate LangGraph vs Custom
@@ -610,7 +605,7 @@ Syscall interception layer as alternative to full VMs.
### 9.4 Bubblewrap (Lightweight Alternative)
- [ ] Bubblewrap for single-process sandboxing on Linux
- [ ] Useful for self-coding module (`src/self_coding/`) safety
- [ ] Useful for self-coding module safety
### 9.5 Success Criteria

View File

@@ -23,10 +23,10 @@ Timmy Time is built on the principle of **AI Sovereignty**. Security is not just
A manual audit of the codebase identified the following security-sensitive areas:
### 1. Self-Modification Loop (`src/self_coding/self_modify/loop.py`)
- **Observation:** Uses `subprocess.run` for git and test commands.
### 1. Self-Modification Loop *(planned, not yet implemented)*
- **Observation:** When implemented, the self-modify loop will use `subprocess.run` for git and test commands.
- **Risk:** Potential for command injection if user-provided instructions are improperly handled.
- **Mitigation:** Input is currently restricted to git operations and pytest. Future versions should further sandbox these executions.
- **Mitigation:** Input should be restricted to git operations and pytest. Future versions should sandbox these executions.
### 2. Model Registration (`src/dashboard/routes/models.py`)
- **Observation:** Allows registering models from arbitrary local paths.

View File

@@ -245,8 +245,7 @@ No single points of failure that would prevent core functionality.
All external network calls are isolated in:
- `src/timmy/backends.py` — AI model backends (local)
- `src/lightning/lnd_backend.py` — LND gRPC (configurable)
- `src/swarm/comms.py` — Redis fallback
- `src/infrastructure/router/cascade.py` — LLM cascade router
- `src/timmy/tools.py` — Web search (optional, can disable)
---

View File

@@ -54,7 +54,7 @@ implementation status:
┌────────────────────────────────────┼─────────────────────────────────────────────┐
│ API LAYER (FastAPI) │
27 route modules registered in src/dashboard/app.py │
Route modules registered in src/dashboard/app.py
└────────────────────────────────────┼─────────────────────────────────────────────┘
┌────────────────────────────────────┼─────────────────────────────────────────────┐
@@ -104,14 +104,14 @@ PERSISTENCE:
| Briefing Engine | `src/timmy/briefing.py` | `from timmy.briefing import engine` |
| Session Logger | `src/timmy/session_logger.py` | `from timmy.session_logger import get_session_logger` |
| Approvals | `src/timmy/approvals.py` | `from timmy.approvals import GOLDEN_TIMMY` |
| Task Queue | `src/swarm/task_queue/models.py` | `TaskQueueDB` |
| Coordinator | `src/swarm/coordinator.py` | `from swarm.coordinator import coordinator` |
| Task Queue | *(not yet implemented)* | — |
| Coordinator | *(not yet implemented)* | — |
| Cascade Router | `src/infrastructure/router/cascade.py` | `from infrastructure.router.cascade import get_router` |
| Event Bus | `src/infrastructure/events/bus.py` | `from infrastructure.events.bus import event_bus` |
| WebSocket Mgr | `src/infrastructure/ws_manager/handler.py` | `from infrastructure.ws_manager.handler import ws_manager` |
| Push Notifier | `src/infrastructure/notifications/push.py` | `from infrastructure.notifications.push import notifier` |
| Error Capture | `src/infrastructure/error_capture.py` | `from infrastructure.error_capture import capture_error` |
| Self-Modify | `src/self_coding/self_modify/loop.py` | `SelfModifyLoop` |
| Self-Modify | *(not yet implemented)* | — |
---
@@ -142,9 +142,9 @@ Server Startup → ThinkingEngine.start_loop()
| Aspect | File | Notes |
|--------|------|-------|
| ThinkingEngine | `src/timmy/thinking.py` | Seed types, continuity context, WS broadcast |
| Task Queue | `src/swarm/task_queue/models.py` | SQLite-backed, 8 statuses, 4 priority levels |
| Auto-approve rules | `src/swarm/task_queue/models.py` | Tasks matching rules execute without human gate |
| Startup drain | `src/swarm/task_queue/models.py` | `get_all_actionable_tasks()` processes queue on boot |
| Task Queue | *(task queue — not yet implemented)* | SQLite-backed, 8 statuses, 4 priority levels |
| Auto-approve rules | *(task queue — not yet implemented)* | Tasks matching rules execute without human gate |
| Startup drain | *(task queue — not yet implemented)* | `get_all_actionable_tasks()` processes queue on boot |
| Config | `src/config.py` | `thinking_enabled`, `thinking_interval_seconds` (300s default) |
The task queue supports 8 statuses (`PENDING_APPROVAL`, `APPROVED`, `RUNNING`,
@@ -198,11 +198,11 @@ Modification Journal (data/self_modify_reports/)
| Aspect | File | Notes |
|--------|------|-------|
| Core loop | `src/self_coding/self_modify/loop.py` | Read-edit-test-commit cycle, 742 lines |
| Git safety | `src/self_coding/git_safety.py` | Atomic operations with rollback |
| Modification journal | `src/self_coding/modification_journal.py` | Persistent report log |
| Reflection | `src/self_coding/reflection.py` | Lessons-learned generator |
| Upgrade queue | `src/self_coding/upgrades/` | Approval queue for proposed changes |
| Core loop | *(self-coding — not yet implemented)* | Read-edit-test-commit cycle |
| Git safety | *(self-coding — not yet implemented)* | Atomic operations with rollback |
| Modification journal | *(self-coding — not yet implemented)* | Persistent report log |
| Reflection | *(self-coding — not yet implemented)* | Lessons-learned generator |
| Upgrade queue | *(self-coding — not yet implemented)* | Approval queue for proposed changes |
| Error capture | `src/infrastructure/error_capture.py` | Auto-creates bug reports from exceptions |
| Error dedup | `src/infrastructure/error_capture.py` | Hash-based deduplication (5-min window) |
@@ -265,7 +265,7 @@ threshold, making him increasingly discerning about what warrants human attentio
| Component | File | What It Does |
|-----------|------|-------------|
| Push Notifier | `src/infrastructure/notifications/push.py` | In-memory queue (200 max), 6 categories, macOS native support |
| Risk Scoring | `src/swarm/work_orders/risk.py` | Priority/category weights, sensitive-path detection |
| Risk Scoring | *(not yet implemented)* | Priority/category weights, sensitive-path detection |
| Approval Governance | `src/timmy/approvals.py` | `GOLDEN_TIMMY` flag, pending/approved/rejected states, 7-day expiry |
| Briefing integration | `src/timmy/briefing.py` | Surfaces pending approvals in briefing |
@@ -289,7 +289,7 @@ thoughts, the thought queue, a dynamic task list, thought logs, artifacts, and a
live feed via WebSocket. The owner can interact directly — reorder tasks, inject new
thoughts, review artifacts, and provide feedback.
The dashboard is built with FastAPI + Jinja2 + HTMX and supports 27 route modules:
The dashboard is built with FastAPI + Jinja2 + HTMX with route modules including:
| Route | Prefix | Purpose |
|-------|--------|---------|
@@ -360,7 +360,7 @@ All persistence uses SQLite — no external database dependencies.
| `memory_entries` | `data/swarm.db` | Semantic memory (with embeddings) | ADR-019 |
| `upgrades` | `data/swarm.db` | Self-modification queue | ADR-021 |
| `provider_metrics` | `data/swarm.db` | LLM router metrics | ADR-020 |
| `task_queue` | `data/swarm.db` | Human-in-the-loop task queue | `swarm/task_queue/` |
| `task_queue` | `data/swarm.db` | Human-in-the-loop task queue | *(not yet implemented)* |
| `thoughts` | `data/thoughts.db` | Thought stream | `timmy/thinking.py` |
| `briefings` | `~/.timmy/briefings.db` | Briefing cache | `timmy/briefing.py` |
| `approvals` | `~/.timmy/approvals.db` | Governance items | `timmy/approvals.py` |
@@ -474,9 +474,9 @@ Enforcement points: `CLAUDE.md` conventions, `AGENTS.md` non-negotiable rules,
| Source | → | Target | Mechanism |
|--------|---|--------|-----------|
| `coordinator.py` | → | Event Log | `log_event()` for all lifecycle events |
| `payment_handler.py` | → | Ledger | Creates entries on invoice/settlement |
| `self_modify/loop.py` | → | Upgrade Queue | Stops at proposal, waits for approval |
| Coordinator | → | Event Log | `log_event()` for all lifecycle events *(planned)* |
| Payment handler | → | Ledger | Creates entries on invoice/settlement *(planned)* |
| Self-modify loop | → | Upgrade Queue | Stops at proposal, waits for approval *(planned)* |
| `timmy/agent.py` | → | Cascade Router | Uses router instead of direct backends |
| `ws_manager/handler.py` | → | Activity Feed | Broadcasts events to WebSocket clients |
| Event Log | → | Briefing Engine | `_gather_swarm_summary()` reads events |