{"slug":"agent-cabinet","total":66,"limit":100,"offset":0,"since":null,"commits":[{"hash":"c58af7f","date":"2026-07-23 07:31:28 -0700","author":"Steve Abrams","subject":"cabinet: click any node → inline expandable modal (description, tools, source, open/run)","body":""},{"hash":"8058934","date":"2026-07-22 21:33:22 -0700","author":"Steve Abrams","subject":"cabinet.aa vhost: IP-bind :80 too (agentabrams default_server outranks wildcard)","body":""},{"hash":"a8f270e","date":"2026-07-22 21:23:47 -0700","author":"Steve Abrams","subject":"Add cabinet.agentabrams.com nginx vhost draft (gated go-live)","body":""},{"hash":"9ba0bd6","date":"2026-07-17 07:28:32 -0700","author":"Steve","subject":"Add Officer Consulting (vp-consulting) to the cabinet","body":""},{"hash":"6b0673e","date":"2026-07-07 08:56:46 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-07T08:56:34 (1 files) — package-lock.json","body":""},{"hash":"aea1f3a","date":"2026-07-07 07:07:06 -0700","author":"Steve","subject":"Add vp-cncp (CNCP Officer) — cross-cutting flow officer that orchestrates all officers, clears approvals/tasks/parking-lot via CNCP","body":""},{"hash":"5c4f586","date":"2026-07-03 08:07:48 -0700","author":"Steve","subject":"chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)","body":""},{"hash":"b6a5bb2","date":"2026-07-02 10:48:55 -0700","author":"Steve Abrams","subject":"Register internal-line-viewer skill under vp-dw-commerce (standing spec for internal basic-auth line viewers; reference astek-landing :9944)","body":""},{"hash":"c799e8a","date":"2026-07-02 09:38:14 -0700","author":"Steve","subject":"cabinet: retire abramsego-orchestrator, fold Ultron orchestration into vp-abramsego (dtd 3/3 — honor 'fewer agents' principle the Contrarian flagged)","body":""},{"hash":"9781d45","date":"2026-07-02 08:32:58 -0700","author":"Steve","subject":"cabinet: register design-trend-scout under vp-abramsego — standing market-research strategist (scout top-sellers → gap-check WPB → brief originals for the licensing engine)","body":""},{"hash":"4d4a7ee","date":"2026-07-02 08:21:01 -0700","author":"Steve","subject":"cabinet: register abramsego-orchestrator (Ultron) + web-extract + ollama-model-eval under vp-abramsego (from 7-post research fan-out)","body":""},{"hash":"1538413","date":"2026-07-01 15:57:06 -0700","author":"Steve","subject":"cabinet: add vp-abramsego officer + abramsego-agent steward + design-research/golive skills (AbramsEgo was unowned; Steve-directed monetization build-out)","body":""},{"hash":"d41633a","date":"2026-06-24 16:25:28 -0700","author":"Steve Abrams","subject":"Point fleet-lifecycle-steward at real registry path + DARK/ZOMBIE invariants","body":""},{"hash":"96d3e46","date":"2026-06-24 16:22:58 -0700","author":"Steve Abrams","subject":"Add fleet-lifecycle-steward officer under vp-operations","body":"Owns 'no DW agent sleeps silently; stale ones retire only with Steve sign-off'.\nReconciles live fleet vs the centralized service-registry contract (DTD verdict A).\nJob 1 keep-alive = autonomous resurrect; Job 2 retirement = auto-flag to pending-approval (gated)."},{"hash":"3638f33","date":"2026-06-23 14:55:42 -0700","author":"Steve","subject":"Rename wallco-agent director to wallpapersback-agent (wallco.ai retired; brand=Wallpaper's Back)","body":""},{"hash":"3d37973","date":"2026-06-23 13:15:29 -0700","author":"Steve","subject":"Split WallpapersBack marketing out of DW Marketing: new wallpapersback-marketing director under vp-special-projects; fence vp-dw-marketing to DW-only","body":""},{"hash":"27e75ef","date":"2026-06-22 12:42:34 -0700","author":"Steve Abrams","subject":"Register commercial-quote skill for B2B Koroseal quote requests under vp-dw-commerce","body":""},{"hash":"625bc69","date":"2026-06-22 12:05:59 -0700","author":"Steve Abrams","subject":"auto-save: 2026-06-22T12:05:49 (1 files) — cabinet.yaml","body":""},{"hash":"d367a44","date":"2026-06-22 08:34:49 -0700","author":"Steve Abrams","subject":"auto-save: 2026-06-22T08:34:43 (1 files) — front-page-audit/runs/drift-followup-20260622T0830Z.jsonl","body":""},{"hash":"14c21b1","date":"2026-06-21 19:01:35 -0700","author":"Steve Abrams","subject":"auto-save: 2026-06-21T19:01:26 (1 files) — front-page-audit/runs/drift-20260622T015513Z.jsonl","body":""},{"hash":"75715aa","date":"2026-06-19 15:49:36 -0700","author":"Steve","subject":"cabinet: register dw-promo-banner director under vp-dw-marketing (+ 2026-06-19 consolidation_log)","body":""},{"hash":"6fb7695","date":"2026-06-18 18:59:49 -0700","author":"SteveStudio2","subject":"enlarge gap/suggestion handles to 30px with hover/focus labels, make ghost officer node read as actionable, focus primary drawer action on open","body":""},{"hash":"183cbbf","date":"2026-06-18 18:56:43 -0700","author":"SteveStudio2","subject":"calmer overlay defaults (Shared+Suggested off) with localStorage persistence + UI smoke harness","body":""},{"hash":"6f9f1ff","date":"2026-06-18 18:54:11 -0700","author":"SteveStudio2","subject":"redirect /pyramid.html and /pyramid/ to canonical /pyramid (301)","body":""},{"hash":"281dc4a","date":"2026-06-18 18:51:22 -0700","author":"Steve Abrams","subject":"pyramid: fix P0 UI/UX (a11y + drawer focus + double-write guard)","body":"Codex UI/UX review P0s:\n1. Drawer focus management — focus the primary action on open, restore\n   focus to the trigger on close, trap Tab inside the drawer (central\n   MutationObserver on #drawer, so every opener inherits it).\n2. Keyboard-accessible nodes — every clickable div ([data-kind]/[data-gap])\n   gets tabindex+role=button+aria-label via makeAccessible(), and Enter/Space\n   activates them (mirrors the click handlers). Visible :focus-visible rings\n   on all interactive surfaces.\n3. Double-write guard — decideGap()/decide() disable both drawer buttons and\n   show Approving…/Dismissing… while the cabinet.yaml write is in flight;\n   re-render (or close) re-enables.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"372ea93","date":"2026-06-18 18:32:44 -0700","author":"Steve Abrams","subject":"pyramid: add Gaps dotted-line overlay (stand up officers / adopt orphans)","body":"Surfaces the org-structure gaps as red dotted lines on the cabinet pyramid,\nreusing the approve→write-to-cabinet.yaml mechanism from cross-officer\nsuggestions. new-vp gaps (vp-security, vp-special-projects) render as ghost\nofficer columns hanging off the President; adopt-orphan gaps render as dashed\nchips under their target officer. Clicking a line/＋ handle opens a drawer;\nApprove inserts the VP block or director into cabinet.yaml and auto-commits.\n\nCommits are serialized in-process (a click never races another click for the\ngit index) and retried with backoff against external committers' index.lock,\nso an approval never silently leaves an uncommitted change. /api/gaps + /api/gap,\nGAPS arrays mirrored server/client, gap-state file gitignored.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"7ac1761","date":"2026-06-17 12:02:17 -0700","author":"SteveStudio2","subject":"Add dw-yolo-loop skill to cabinet (vp-operations) + pyramid: codifies the DTD-decider + officer-signoff autonomous catalog-health loop as a reusable skill/command","body":""},{"hash":"566f3c9","date":"2026-06-16 19:27:13 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer skill pairs-well-with under vp-dw-commerce (from vp-dw-marketing) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"5eba332","date":"2026-06-16 19:27:13 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer skill new-arrivals-rotator under vp-dw-commerce (from vp-dw-marketing) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"7894cf0","date":"2026-06-16 19:27:13 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer skill collection-creator under vp-dw-commerce (from vp-dw-marketing) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"3e21128","date":"2026-06-16 19:27:13 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer subagent analytics-agent under vp-research-content (from vp-operations) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"a203330","date":"2026-06-16 19:27:12 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer subagent la-research-agent under vp-research-content (from vp-directories) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"c705aea","date":"2026-06-16 19:27:12 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer subagent security-auditor under vp-compliance-policy (from vp-engineering) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"7656ca5","date":"2026-06-16 19:27:12 -0700","author":"Steve Abrams","subject":"cabinet: approve cross-officer skill dw-legal-compliance under vp-compliance-policy (from vp-dw-commerce) via pyramid","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"5b3ec47","date":"2026-06-16 19:16:41 -0700","author":"Steve Abrams","subject":"activity /api/schedule: read real launchd state (loaded+disabled+lastExit), flag jobs that won't fire (disabled/unloaded) + nonzero-exit — stops the stdout-age false-stale crying wolf in both directions","body":""},{"hash":"d170113","date":"2026-06-16 18:27:50 -0700","author":"SteveStudio2","subject":"Activity viewer: FIX day-grouping used UTC date while times render local → evening-PT events grouped under wrong/duplicate day headers; dayKey now uses local date (verified 0 mismatches, unique headers). Plus: export filtered view to CSV (respects search+type+date filters; timestamp/local/type/verdict/title/detail/ref columns, RFC-escaped)","body":""},{"hash":"c18a8e8","date":"2026-06-16 18:24:15 -0700","author":"SteveStudio2","subject":"Activity viewer: date-range filter — from/to date pickers + Today/7d/30d/All presets scope the feed by timestamp; composes with search + type chips; 'in range' count + active-preset highlight","body":""},{"hash":"c791b73","date":"2026-06-16 18:17:05 -0700","author":"SteveStudio2","subject":"Activity viewer: live search box — filters the feed AND scheduled/continuous jobs by title/detail/type/label/cadence; chip counts track the query; clear button + 'no matches' state; persists across auto-refresh","body":""},{"hash":"9727194","date":"2026-06-16 18:13:46 -0700","author":"SteveStudio2","subject":"Activity viewer: click any process/event for details — detail drawer + /api/job (plist schedule, launchctl status, command, log tail), /api/commit (git show), /api/canary (full verdict); jobs, continuous chips, commits, canaries, wins/cost/ticks all drillable; injection-guarded","body":""},{"hash":"be0315f","date":"2026-06-16 18:08:13 -0700","author":"SteveStudio2","subject":"Activity viewer: draggable middle splitter to resize the two columns (clamped 260–720px, persisted to localStorage, double-click resets to 380px)","body":""},{"hash":"0dfcebe","date":"2026-06-16 18:04:17 -0700","author":"SteveStudio2","subject":"Activity viewer: side-by-side two columns — sticky Upcoming/scheduled lane (left) + Recent activity feed (right); stacks on narrow screens","body":""},{"hash":"5b4da1d","date":"2026-06-16 17:54:49 -0700","author":"SteveStudio2","subject":"Activity viewer: add Upcoming/scheduled lane — /api/schedule parses 64 launchd plists (plutil→json), computes next fire for calendar jobs (daily/weekly/monthly/one-time) + lists continuous interval jobs; page shows countdown + absolute time + cadence, auto-refresh","body":""},{"hash":"101c9bc","date":"2026-06-16 17:39:51 -0700","author":"SteveStudio2","subject":"Add /activity viewer — live date/time timeline aggregating git commits, canary runs, watch ticks, CNCP wins, and paid API calls; /api/activity endpoint (epoch-sorted, mtime-dated ticks); type filter chips + 30s auto-refresh; linked from pyramid toolbar","body":""},{"hash":"9634ba2","date":"2026-06-16 16:45:36 -0700","author":"SteveStudio2","subject":"Build out both proposals LIVE: 🩺 Health Overlay (reads 6 DW canary latest.json, maps verdicts→officers, tints nodes + status dots) + 💸 Cost Heatmap (reads cost-ledger.jsonl, app→officer spend, ranks top spenders, node badges); /api/health + /api/cost; clear-overlay control","body":""},{"hash":"52c593f","date":"2026-06-16 16:36:15 -0700","author":"SteveStudio2","subject":"Pyramid: 💡 Ideas modals — 5 upgrade ideas as modals (Task Router live, Consolidation Advisor live, Org Export live JSON/MD; Health Overlay + Cost Heatmap as proposals); /api/queue-idea posts to CNCP parking-lot","body":""},{"hash":"e46f975","date":"2026-06-16 15:55:33 -0700","author":"SteveStudio2","subject":"Suggestion lines truly clickable: amber ◆ handle at each line midpoint (z-index above nodes, real hit-test verified) + fatter 16px line hit-band; toggles with Suggested layer","body":""},{"hash":"2f295b3","date":"2026-06-16 15:50:29 -0700","author":"SteveStudio2","subject":"Approve auto-commits cabinet.yaml (path-limited, local, Steve+Claude co-author); commit hash surfaced in toast","body":""},{"hash":"d87e58a","date":"2026-06-16 15:48:01 -0700","author":"SteveStudio2","subject":"Pyramid: clickable suggestion lines — click a dotted arrow to see the relationship + Approve (writes into cabinet.yaml under target VP, idempotent/git-reversible) / Remove / Reset; state persisted server-side; per-row controls in the analysis list too","body":""},{"hash":"eb43caf","date":"2026-06-16 15:35:18 -0700","author":"SteveStudio2","subject":"Pyramid: cross-officer lines — 18 'shared now' (computed from cabinet duplicates) + 12 curated 'suggested moves' arrows, toggleable + analysis list drawer","body":""},{"hash":"29b288a","date":"2026-06-16 14:53:28 -0700","author":"SteveStudio2","subject":"Make pyramid nodes runnable + openable: /api/source|open|run endpoints + click-drawer (source view, Run in new claude session, Open in editor); 39 scrapers individually runnable; injection-guarded","body":""},{"hash":"655d59b","date":"2026-06-16 14:44:35 -0700","author":"SteveStudio2","subject":"Add cabinet pyramid visual: President→Officers→Agents→Skills→Workflows with connector lines + 24h timeline","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"70ad0c8","date":"2026-06-12 15:08:09 -0700","author":"SteveStudio2","subject":"cabinet: add vp-dw-marketing (DW Marketing Officer) + 7 per-platform social agents (IG/TikTok/LinkedIn/FB/Pinterest/YouTube/X)","body":""},{"hash":"e0540bc","date":"2026-06-11 15:44:28 -0700","author":"SteveStudio2","subject":"Cabinet: add plain-English owns descriptions for 5 plugin/MCP skills (dw-agent-builder, claude-api, simplify, review, prism) — no on-disk SKILL.md, so cabinet is their description home","body":""},{"hash":"805da5e","date":"2026-06-03 08:56:52 -0700","author":"Steve","subject":"gitignore: exclude *.bak per standing code-health rule","body":""},{"hash":"1c95831","date":"2026-05-19 11:35:43 -0700","author":"Steve","subject":"snapshot — gitify backup 2026-05-19","body":""},{"hash":"b59c209","date":"2026-05-18 20:09:45 -0700","author":"SteveStudio2","subject":"server: wrap /cabinet.yaml route in try/catch so a read error returns 500 instead of crashing","body":""},{"hash":"6fbc7d5","date":"2026-05-18 20:09:32 -0700","author":"SteveStudio2","subject":"server: drop dead 'cabinet' param from renderGame (function re-reads file itself)","body":""},{"hash":"d1350b1","date":"2026-05-13 14:10:04 -0700","author":"SteveStudio2","subject":"cabinet: register aichat (Big Red) under vp-dw-commerce","body":""},{"hash":"9a92eb7","date":"2026-05-13 08:57:45 -0700","author":"Steve","subject":"snapshot: 1 file(s) changed, +1 new","body":""},{"hash":"00a0d8a","date":"2026-05-07 12:29:19 -0700","author":"Steve","subject":"tighten .gitignore: add missing standing-rule patterns (dist/ build/ .next/)","body":""},{"hash":"eca07f1","date":"2026-05-06 12:29:16 -0700","author":"Steve","subject":"Game Mode: /game route — 6 dept HQs + 134 cards w/ avatars, stats, synergies","body":""},{"hash":"157848f","date":"2026-05-06 12:08:10 -0700","author":"Steve","subject":"Viewer: switch from Mermaid mindmap to flowchart TD with class styling","body":""},{"hash":"73d8421","date":"2026-05-06 12:05:04 -0700","author":"Steve","subject":"Cabinet: restore plugin-loaded skills (claude-api, simplify, review, prism, gamify) + add claude-control-center","body":""},{"hash":"1f972c5","date":"2026-05-06 11:27:56 -0700","author":"Steve","subject":"Cabinet drift: remove orphan dw-site-build subagent ref + prism skill ref","body":""},{"hash":"95784df","date":"2026-05-06 11:27:24 -0700","author":"Steve","subject":"Cabinet drift fix: reclassify subagents, add 9 orphans, remove 4 phantoms","body":""},{"hash":"34a0472","date":"2026-05-06 11:25:14 -0700","author":"Steve","subject":"Initial Cabinet scaffold: agent-architect + 6 VPs + Mermaid viewer on :9766","body":""}]}