Skip to content

feat(integration): runbook triage hints, dashboard panel, note→memory bridge - #49

Merged
mdheller merged 1 commit into
mainfrom
feat/runbook-integration-mesh-panel
Aug 4, 2026
Merged

feat(integration): runbook triage hints, dashboard panel, note→memory bridge#49
mdheller merged 1 commit into
mainfrom
feat/runbook-integration-mesh-panel

Conversation

@mdheller

@mdheller mdheller commented Aug 4, 2026

Copy link
Copy Markdown

Summary

Three tight integrations connecting the features shipped in #47 and #48.

1. Runbook suggestion alongside error triage

When auto error triage fires (non-zero exit → Noetica explain at next prompt), TurtleTerm now also searches the runbook library for the failed command. If a match is found, it prints a dim suggestion line:

◆ Noetica: likely a DNS resolution failure — check /etc/resolv.conf or restart systemd-resolved
  ◈ runbook: diagnose-dns

One rb run diagnose-dns away from the fix.

2. Runbooks panel in mesh dashboard

http://localhost:7788 now has a Runbooks card showing all runbooks as clickable chips. Clicking a chip copies rb run <name> to clipboard. Empty state shows the rb new <name> hint.

3. note() → persistent memory auto-extract

When note "my idea" saves to ~/notes/, it fires turtle-noetica-memory extract "$title" in the background — extracting memorable facts from the note title and saving them to the SQLite memory store. Notes become retrievable via noe "what ideas do I have about X".

Test plan

  • Run a failing command (kubectl get pods without a cluster) → triage shows + runbook suggestion appears if a k8s runbook exists
  • rb new k8s-debug → create a runbook → mesh dashboard shows it in the Runbooks card
  • Click runbook chip → rb run k8s-debug in clipboard
  • note "prefer immutable infra for all prod changes"noe "what do I prefer for prod" → references it

…→memory extract

turtle-shell-init.zsh:
- Error triage: after Noetica triage line, searches runbooks for the failed
  command and prints matching runbook name as a ◈ suggestion (1 liner, dim)
- note(): auto-extracts facts from note title to turtle-noetica-memory
  in the background (&!) after saving — bridges ephemeral notes to
  persistent AI memory

turtle-mesh-serve:
- RUNBOOKS_DIR constant at ~/.local/state/sourceos/runbooks/
- gather_state(): loads up to 12 most-recent runbook YAMLs (name/desc/tags)
- Dashboard: "Runbooks" card showing runbook chips; click copies rb run <name>
  to clipboard; shows hint when empty
@mdheller
mdheller force-pushed the feat/runbook-integration-mesh-panel branch from 1616cb3 to 40d0932 Compare August 4, 2026 07:54
@mdheller
mdheller merged commit 90fda2d into main Aug 4, 2026
@mdheller
mdheller deleted the feat/runbook-integration-mesh-panel branch August 4, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant