Kapnet TUI — Operator Interface Additions

- F1: Config - F2: NostrStatus - F3: BraidKnot

Kapnet TUI — Operator Interface Additions

Current TUI (F1-F8)

  • F1: Config
  • F2: NostrStatus
  • F3: BraidKnot
  • F4: Bitcoin
  • F5: Help
  • F6: Errors
  • F7: Boundary
  • F8: Agents

Missing Operator Screens

F9: Messages (Message View)

Shows:
- Incoming messages from kapnet listener (shared-rw/messaging/inbox/)
- Outgoing messages from publicity loop (shared-rw/messaging/outbox/)
- Reply detection and threading
- Filter: all | replies | mentions | broadcast

Key bindings:
  j/k: navigate messages
  r: reply to selected message
  d: delete message
  f: follow npub
  b: boost/zap
  q: back to main view

F10: Sheet (Message Log as Sheet)

Shows:
- Hash-chained message log
- Columns: seq | timestamp | from | to | type | content | hash | prev_hash
- Source: shared-rw/kapnet/messaging/message-sheet.json
- Real-time updates as new messages arrive

Key bindings:
  j/k: scroll rows
  /: search
  s: sort by column
  e: export to CSV
  q: back

F11: Sessions (Who’s Online)

Shows:
- Active sessions from shared-rw/kapnet/messaging/sessions.json
- Heartbeat files from HEARTBEAT/ directory
- Columns: session_id | shell_id | type | status | last_heartbeat

Key bindings:
  j/k: navigate
  d: disconnect session (AUTH_7 only)
  r: revoke session (AUTH_7 only)
  n: new session (AUTH_7 only)
  q: back

F12: Operator (Command Composition)

Shows:
- Command composition panel
- Templates: spawn, pause, resume, build, audit, publish, research, sweep
- Target selection: npub, broadcast, specific KOR
- Params: type-specific fields
- Preview: shows the event before sending
- Execute: Ctrl+Enter to publish

Key bindings:
  Tab: switch field
  Ctrl+Enter: publish command
  Ctrl+T: select template
  Ctrl+P: preview
  q: back to main view

F13: Churn (TXXM Churn KOR)

Shows:
- Current round number
- Participants (from opt-in events)
- Bids received (weakwork templates)
- Lottery status (pending | running | complete)
- Winner of current round
- Braid tip after churn round

Key bindings:
  s: start new round (manual trigger)
  b: submit bid
  v: view lottery results
  r: refresh
  q: back

F14: Treasury (Treasury Operations)

Shows:
- Hot wallet balance (from lnd)
- Cold storage status (multisig)
- Recent transactions
- Sweep threshold status
- CoinJoin status (if integrated)

Key bindings:
  s: sweep hot -> cold (requires 2-of-3)
  m: mix (CoinJoin) (requires AUTH_7)
  t: transaction history
  r: refresh balances
  q: back

F15: Publicity (Publicity Loop Status)

Shows:
- Content queue (pending | published)
- Engagement metrics (replies, boosts, rate)
- Strategy settings (interval, daily limit, quiet hours)
- Recent publishes with engagement scores
- Scheduled content

Key bindings:
  p: publish next item now (manual trigger)
  a: adjust strategy manually
  e: edit queue
  r: refresh metrics
  q: back

Input Line Commands

In the main view (no overlay), the input line supports:

/msg <npub> <text>        — Send direct message
/txxm <type> <content>   — Submit TXXM
/broadcast <text>         — Broadcast to all
/proposal <title>         — Create governance proposal
/vote <proposal-id> <yes|no|abstain>
/invite <npub>            — Invite to KOR (AUTH_7)
/status                   — Quick status
/help                     — Command help

Implementation Priority

Immediate (this session):

  1. Add F9 (Messages) — read from inbox/outbox
  2. F12 (Operator commands) — compose + publish
  3. Input line command parser

Short-term (when Mac Mini arrives):

  1. F10 (Sheet) — render message-sheet.json
  2. F11 (Sessions) — heartbeat monitoring
  3. F13 (Churn) — integrate with txxm-churn.kor

Medium-term:

  1. F14 (Treasury) — lnd integration
  2. F15 (Publicity) — integrate with publicity-loop.cjs

Code Changes Needed

app.rs:

  • Add new overlay variants: Messages, Sheet, Sessions, Operator, Churn, Treasury, Publicity
  • Add handle_keys for each new overlay
  • Add input line command parser

state.rs:

  • Add state fields for each new view
  • Add methods for inbox/outbox reading
  • Add command composition state

render.rs:

  • Add render functions for each new overlay
  • Add message list rendering
  • Add command composition panel

Write a comment