Skip to content

fix(dashboard): use curated AI/dev burn instead of full card total - #10

Open
kdwhpgxgrc-spec wants to merge 110 commits into
nateherkai:mainfrom
kdwhpgxgrc-spec:codex/aios-pinecone-graph
Open

fix(dashboard): use curated AI/dev burn instead of full card total#10
kdwhpgxgrc-spec wants to merge 110 commits into
nateherkai:mainfrom
kdwhpgxgrc-spec:codex/aios-pinecone-graph

Conversation

@kdwhpgxgrc-spec

Copy link
Copy Markdown

Summary

  • Burn KPI was showing $1781 (entire Apple Card) instead of $373 (curated AI/dev expenses)
  • Fixed config.json subscriptions to match actual plans (Claude Max 5x $100, ChatGPT Plus $20, Gemini $21.31)
  • Pipeline check skill also updated to use curated burn

Test plan

  • Launch dashboard, verify sidebar shows ~$373 burn instead of $1781
  • Verify net calculation = revenue - curated burn
  • Finances panel still shows full card total separately

🤖 Generated with Claude Code

Bryan.Aaron and others added 30 commits May 12, 2026 09:38
…pabase data

- FastAPI server with 11 endpoints (pipeline, kpis, expenses, tasks, debt, skills)
- Dark glass frontend: net banner, 4 KPIs, school pipeline, expenses, tasks, debt tracker
- Apple Card CSV parser for expense auto-update
- Supabase client for live school/trial data
- Pipeline check and trial follow-up skill modals
- Launch: bash dashboard/launch.sh → http://localhost:8080

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rd data

- Parser now sorts by filename date (not mtime) — April correctly beats March
- Split Claude Max (manual $130) from Anthropic API (CSV-tracked usage)
- Added: ElevenLabs $5.27, OpenRouter $34.14, n8n Cloud $25.58, Fal.ai $10.66
- Real April burn: $373/mo (was seeded at $249)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…Machine, Gravity Claw Bridge

Clones the visualization layer from Jack Roberts' "Claude Code Agentic OS"
video into the existing FastAPI dashboard. Five new tabs under "OS Layer"
in the sidebar; hash routing (#pillars, #memory, #roi, #dreams, #bridge)
makes views deep-linkable.

Features:
- Six Pillars: 6 cards (Models / Plans / Memory / Skills / Knowledge /
  Connections) with live status probes (Supabase, Pinecone, Obsidian,
  local memory).
- Memory feed: aggregates recent writes from ~/.claude/projects MEMORY.md,
  Gravity Claw Obsidian vault, Supabase tables, and Pinecone index.
- ROI panel: monthly AI spend vs value saved (per-skill minutes × hourly
  rate), with inefficiency flags (opus-on-cheap-task, never-invoked-skill).
- Dream Machine: overnight analyzer of ~/.claude/projects/**/*.jsonl
  transcripts; scores 8 dimensions (repeated tasks, slow workflows, token
  waste, memory gaps, skill underuse, tool overuse, cross-tool friction,
  knowledge silos) and writes ranked recommendations to data/dreams/.
- Gravity Claw Bridge: two-way HTTP bridge with /api/bridge/{handshake,
  query,push,local-test}. Auto-generates BRIDGE_TOKEN into .env on first
  boot. Reuses GC's TELEGRAM_BOT_TOKEN for push alerts. install.md guides
  pasting bridge prompt into GC's CLAUDE.md.

Scheduling:
- scripts/install_dream_cron.sh installs a launchd agent on macOS
  (com.agcoachpro.aios.dream, 02:00 daily) or falls back to crontab.

Launcher:
- "AIOS Dashboard.command" — double-click in Finder to start the server.

No regression: existing /api/pipeline, /api/expenses, /api/tasks,
/api/debt, /api/kpis, /api/skills/pipeline-check unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reflects that the GC bot runs on Railway and reaches the dashboard via a
public tunnel rather than 127.0.0.1.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
https://aios.agcoachos.com replaces ephemeral trycloudflare URL.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…adge

/api/kpis returns trial_schools, not trial_count — JS was reading wrong
key and rendering "undefined schools in trial". Fixed by using nullish
coalescing on trial_schools.

Also hide the sidebar Schools badge when trial count is 0 (was rendering
a confusing "0" pill next to the label).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…atus

Supabase rows use 'trial' but pipeline summary was filtering for
'trialing' — caused trial_count to always be 0 even when 7 trials
existed. Now matches either value.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- New scripts/gmail_client.py — InstalledAppFlow OAuth, list_threads,
  get_thread, send_draft helpers.
- New /api/inbox endpoints — status, authorize, list, thread, draft.
- New Inbox view: thread list w/ unread dots, search query box, click-to-
  open modal for thread body.
- Sidebar Inbox shows unread count badge.
- .gitignore for .gmail-credentials.json + .gmail-token.json (never
  commit OAuth secrets).

Requires Desktop-type OAuth client in a GCP project with Gmail API
enabled. Credentials path: dashboard/.gmail-credentials.json. Token
auto-generated on first authorize.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ng, and integrate financial/business context documentation.
…w viz

- Scoped CSS bumps font sizes ~2x for all OS Layer views (panel titles,
  pillar cards, feed rows, dream cards, ROI panels). Easier to read.
- Added padding-bottom:80px to .view so content no longer gets cut at
  bottom edge.
- New Knowledge Graph radial viz at top of Memory tab: SVG with glow
  filter, central AIOS hub, source hubs (obsidian / pinecone / supabase
  / local-memory) in inner ring, leaf nodes for recent items. Hover
  reveals full summary via title attr.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- New scripts/memory_graph.py: builds nodes + edges from .claude/projects
  workspaces, memory files, Obsidian decisions, daily sessions, skills,
  Pinecone vector index. Tags stale files (>30d mtime).
- New /api/memory-graph endpoint.
- Replaced static SVG diagram with vanilla-JS force-directed simulation
  (repulsion + spring + center pull). Glowing nodes via SVG filter,
  curved edges, draggable canvas-style frame. Header shows workspace /
  file / vector counts; stats card shows decisions, skills, sessions,
  stale. Legend strip with color-coded categories matching Jack
  Roberts' OpenClaw memory graph reference.
- Bumped OS Layer typography another step (panel titles 24px, pillar
  members 19px, KPI values 56px, feed rows 18px, dream cards 21px).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Tripled repulsion (1800 → 6000), longer links (110 → 160), softer
  center pull — nodes spread across canvas instead of clumping.
- Removed 600-tick cap; sim now runs perpetually with gentle jitter
  added after settle for "live" feel.
- Workspace labels strip -Users-aaronfamilylivestock- and
  -Volumes-Samsung-PSSD-T7- prefixes so they show actual project name.
- Bumped node label font 13→16 with text-shadow for legibility.
- Graph height 640→760.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Every font-size declaration in index.html doubled, with floor of 20px.
Dashboard view now matches OS Layer view in readability.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bumped every font-size declaration <15px (9/10/11/12/13/14) up to 15px.
Right column was hard to read on default Dashboard view; OS Layer views
already at 15+. Now consistent minimum across the whole UI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Matches the "stars in space, interacting when something fires" look from
Jack Roberts' reference.

- 140 twinkling background stars (animated opacity) for cosmic depth.
- Two-layer glow on nodes (inner solid + outer halo with 10px blur).
- Edge fire animation: each edge randomly pulses every 100-500 ticks,
  brightens to its kind color for 40 frames then fades back. Mimics
  "memory fires" interaction.
- Curved edges use perpendicular offset proportional to length —
  longer arcs for distant nodes.
- Sidebar gets overflow-y:auto so bottom tools no longer get cut off.
  Sidebar fonts dialed to 11-14px (overrides 15px global floor so the
  nav fits in 240px column).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
K2 hybrid — Karpathy LLM Wiki in vault + Roberts CC-OS dashboard + Herk skills/agents.
8-phase rollout, all 7 sections approved by Bryan during brainstorm.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Self-review caught ambiguous AIS-OS/dreams/ vs dashboard/data/dreams/.
Existing path is canonical.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
22 tasks, TDD on Python scripts, codex adversarial review on sensitive ingest pipeline.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
9/9 tests pass — Card dataclass, validate_cards (max 4, dup ids, invalid
dims), build_card_json round-trip, write_dream_output, DreamConfig defaults.
Dry-run mode confirmed. Overwrites dashboard/data/dreams/2026-05-16.json (expected).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gacy inbox archive

16 wiki pages created across people/, concepts/, sources/, comparisons/, analysis/.
All 4 raw files archived to _ingested/. Index, log, hot updated. Lint: 7 issues
(5 false-positive [[links]] in prose/code, 1 unassigned domain for inbox placeholder,
0 orphans).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ds vault wiki

- Restored stash wip-dashboard-before-three-brain-build
- Added 3 dashboard cards: #card-knowledge, #card-hot, #card-dreams (Tasks+Debt row)
- Appended loadVaultCards() JS: fetches wiki/index.md, wiki/hot.md, dreams JSON
- Added load_vault_wiki_nodes() to memory_graph.py; integrated 17 wiki nodes into build()
- Smoke test: 17 vault wiki nodes detected, all categories mapped correctly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bryan.Aaron and others added 29 commits May 18, 2026 21:55
- memory_graph: point GC memory walk at gravity-claw/memory (not hermes-claw)
- wizard_detect: check ~/.local/bin and ~/.npm-global/bin so Claude/Codex/Gemini detect
- dreams UI: add Promote to skill button, visual state per status, task link after Turn into task
- dream_machine: use 60-char snippet in headline instead of useless hash; pass skill_trigger to cards
- promote.py: derive slug and SKILL.md trigger from skill_trigger phrase, not hash artifact

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
promote.py now rejects non-repeated-task dims (skill-underuse,
slow-workflow, etc) instead of shipping junk-trigger skill stubs.
Slug prefers skill_trigger over headline. Dismiss action persists
headline to config.snoozed_dream_headlines so dream_machine skips
on next run.
Current pull bridge dead — aios.agcoachos.com returns Cloudflare Access
403 to Railway. Spec inverts direction: AIOS cron writes snapshot JSON
into hermes-claw/hermes/state/, Hermes reads files instead of HTTP.
Survives laptop-offline.

Status: proposed, not built.
Implements the push half of decisions/0001. Writes pipeline.json,
dreams.json, roi.json, pillars.json, tasks.json, snapshot.meta.json
into the hermes-claw repo. --no-commit skips the git commit/push step
(used by tests + dev runs).

Reuses bridge.snapshot() so payload shape matches the existing pull
path. Next: launchd schedule + delete the dead pull plugin once
push has been running cleanly for a week.
_fetch_openrouter_account_usage now reads OPENROUTER_API_KEY through
_read_env_value so the dashboard finds the key in AIS-OS .env without
needing a shell export.

New _fetch_openrouter_activity_tokens paginates /api/v1/activity (which
requires a sk-or-prov-* provisioning key, separate from the inference
key) and aggregates the last 30 days into input/output/billable tokens
+ cost. The provisioning key is read from OPENROUTER_MANAGEMENT_KEY in
the same .env fallback path.

Results flow into source_breakdown["openrouter"] so the dashboard's
"Source Coverage" panel shows real generation counts, token totals,
and cost instead of zeros. When the provisioning key is missing,
a data_quality entry surfaces the gap with the dashboard URL.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two bugs surfaced once a real provisioning key landed in AIS-OS .env:

1. cutoff was offset-aware (datetime.now(timezone.utc)) but the
   parsed activity row timestamp was offset-naive (no Z suffix in
   the OpenRouter response), causing
   'can\\'t compare offset-naive and offset-aware datetimes'. Naive
   timestamps now get tzinfo=UTC before the comparison.

2. The activity row uses prompt_tokens / completion_tokens, not the
   tokens_prompt / tokens_completion names assumed earlier. Token
   aggregation was returning 0. Generation count also lives in
   row['requests'] (rows are pre-aggregated per model/day), so the
   counter now sums that instead of incrementing by 1.

End-to-end: 11,245 generations · 100.8M input · 769k output ·
101.6M billable · \$81.16 over the last 30d, populated into
source_breakdown['openrouter'] so the AIS-OS dashboard's Source
Coverage panel now shows OpenRouter alongside Claude Code / Codex.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Self-improvement loop referenced these files but they never existed.
Creates them with accurate current state: hc_nlm tools marked fixed
(b93308036), lessons backfilled from session history, decision context
and rejected ideas extracted from decisions/log.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NLM re-authenticated 2026-05-24. Frank librarian back to running.
Image generation deprioritized — no current need.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- NLM re-authenticated, Frank back to running
- FAL_KEY deferred (no current need)
- Deleted 3 dormant notebooks (Higgsfield, Pairstart, Cow Lot)
- Consolidated 3 AI notebooks into 2 (merged Hermes into "AI Agents & Hermes")
- Only nateherkai#5 (Hermes push bridge) remains open

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Hermes push bridge was built and running since 2026-05-23 but
decision spec and log still said "proposed". Updated to shipped.
All 5 active concerns now resolved.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Burn KPI was showing $1781 (entire Apple Card statement including AFL
livestock purchases + personal expenses). Now shows $373 curated AI/dev
expenses — the number Bryan actually controls for Ag Coach Pro.

Also fixes config.json subscriptions to match actual plans (Claude Max
5x $100, ChatGPT Plus $20, Gemini $21.31).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
achibukz added a commit to achibukz/AIS-OS that referenced this pull request Aug 28, 2026
…6 lenses); tasks: Asa STORM run + achiAgy OS-agnostic rename
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