Commit Graph

103 Commits

Author SHA1 Message Date
90f59dc1da fix(memory): drop 49 stale index entries pointing at deleted files
Commit 4dc4563 had added MEMORY.md entries for the 49 resurrected
orphan files. My deletion commit 720bdd8 removed the files but missed
the matching index lines (read MEMORY.md before the rebase pulled
4dc4563 in). Index now matches the actual on-disk file set.

Self-check: 72 PASS / 0 WARN / 1 FAIL (autotask manifest issue
remains, not fixable on this machine).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 15:06:57 -07:00
c759f04674 chore(memory): re-apply consolidation deletions + lift additive-only constraint
The 39 files I deleted in 0c00010 got resurrected by sync-memory.sh on
GURU-5070 (f8ed03c) because the script is additive-only. Re-deleted them
(49 files this time -- some additional drift between machines).

Also added feedback_memory_sync_destructive_ok.md capturing the policy
shift: with everyone onboarded, the memory tooling no longer needs
additive-only safety. memory-dream may apply proposed merges/deletions
and sync-memory.sh should propagate repo-side deletions back to profile
stores. Script updates to honor that are still pending -- without them,
this round of cleanup is also vulnerable to resurrection.

Self-check: 0 WARN, 1 FAIL remaining (autotask command -- manifest issue,
not fixable on this machine; needs Mike to either un-localize /autotask
or move it to capability-gated in baseline/manifest.json).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 15:03:58 -07:00
4dc4563f09 memory: add 49 orphaned files to MEMORY.md index
Applied memory-dream --apply-safe to resolve orphan warning from self-check.

- Added all 49 orphaned feedback/project/reference memories to index
- Index now complete with all 127 memory files properly referenced

This resolves the WARN from self-check about orphaned memory files.
2026-06-02 14:57:59 -07:00
4c65942f81 docs(memory): record winget-jq CRLF gotcha for harness scripts
The winget jq build on Windows emits CRLF; a trailing \r silently corrupts
`for x in $(jq ...)` loops and read-from-@tsv fields (single-value $() hides it).
Fix: override `jq(){ command jq "$@" | tr -d '\r'; }`. Windows-build-specific,
so it passes review on Mac/Linux. First hit + fix: the self-check skill engine.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 14:51:09 -07:00
fb9604a312 sync: auto-sync from ACG-TECH03L at 2026-06-02 11:52:51
Author: Howard Enos
Machine: ACG-TECH03L
Timestamp: 2026-06-02 11:52:51
2026-06-02 11:53:00 -07:00
61081f70c2 sync: auto-sync from GURU-BEAST-ROG at 2026-06-02 10:44:23
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-02 10:44:23
2026-06-02 10:44:29 -07:00
f8ed03c75a sync: auto-sync from GURU-5070 at 2026-06-02 07:25:49
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-02 07:25:49
2026-06-02 07:25:55 -07:00
581906a04c sync: auto-sync from Mikes-MacBook-Air.local at 2026-06-01 19:42:24
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-06-01 19:42:24
2026-06-01 19:42:27 -07:00
eed3ece2c7 feat: session recovery toolset (orphan detector + /recover)
Reconstructs session logs from Claude Code transcripts when a session
crashes or is closed before /save. Two entry points:

- /recover <uuid|latest> : manual, Claude-reviewed reconstruction
- detect_orphaned_sessions.py : scheduled scan that auto-builds logs for
  substantive, unsaved, not-yet-recovered transcripts (banner-marked
  RECOVERED-UNVERIFIED), commits them, and posts a #bot-alerts FYI.

recover_session.py is the shared engine: Python extracts the verbatim
command/config/reference timeline; Ollama drafts prose-only narrative.
Machine-local ledger (.claude/state/) prevents reprocessing. Reviewed:
git add scoped to own files, ledger written only after successful push,
per-uuid idempotency, --max cap for unattended runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 18:33:07 -07:00
c8f0006d25 sync: auto-sync from HOWARD-HOME at 2026-06-01 18:17:08
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-01 18:17:08
2026-06-01 18:17:15 -07:00
eb5c147bcd sync: auto-sync from HOWARD-HOME at 2026-06-01 17:07:55
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-01 17:07:55
2026-06-01 17:10:07 -07:00
f7cc0cf257 sync: auto-sync from GURU-5070 at 2026-06-01 16:30:28
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-01 16:30:28
2026-06-01 16:33:58 -07:00
805b902ca5 sync: auto-sync from GURU-KALI at 2026-06-01 16:28:01
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-06-01 16:28:01
2026-06-01 16:29:09 -07:00
66733d47ea sync: auto-sync from GURU-BEAST-ROG at 2026-06-01 16:26:01
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-01 16:26:01
2026-06-01 16:26:08 -07:00
0c000109dc chore(memory): consolidate scattered feedback/project/reference files
Compressed memory store 104 -> 71 files via four passes:

- Syncro: 19 scattered feedback_syncro_* files merged into 3 rule files
  (api/billing/workflow) + an on-demand feedback_syncro_history.md for
  incident detail, quotes, and tech/product ID tables.
- Four near-duplicate merges: Howard paste-safety, Pluto build server,
  Howard backend deferral, IX server access (ssh+tailscale).
- Per-cluster rule/state/history split applied to GuruConnect (2->1),
  Dataforth (3->2), Cascades (7->3), GuruRMM (13->3).
- New reference_resource_map.md: single auto-loaded cheatsheet for
  "do I have access to X and how do I connect from this machine?"
- MEMORY.md rewritten to match the new layout.

Health: broken backlinks 8->7, overlap clusters 12->5, orphans 17->0.
2026-06-01 16:25:45 -07:00
2a1ccfac73 Add memory-dream skill + additive cross-machine memory sync
memory-dream: read-only memory lint/consolidation analyzer (index, backlinks,
stale refs, dup clusters, profile drift); additive-only --apply-safe, all
merges/deletes are proposals. sync-memory.sh: additive repo<->harness-profile
union (no delete/overwrite, conflicts surfaced), wired to a SessionStart hook.
Migrates the useful profile-only memories into the synced repo store.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 15:22:12 -07:00
501f3eb130 sync: auto-sync from GURU-5070 at 2026-06-01 06:57:20
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-01 06:57:20
2026-06-01 06:57:28 -07:00
887f0a21a9 sync: auto-sync from HOWARD-HOME at 2026-05-31 20:13:56
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-31 20:13:56
2026-05-31 20:14:09 -07:00
d17e9be135 sync: auto-sync from GURU-5070 at 2026-05-31 16:35:50
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-31 16:35:50
2026-05-31 16:35:57 -07:00
c67accddcc memory: record RMM webhook docs-only build guard (SPEC-020 Phase 0)
Host guard in /opt/gururmm/webhook-handler.py skips docs-only pushes; note the
stale repo copy must not be redeployed over it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 17:07:09 -07:00
833815b5f2 memory: add RMM identify-by-IP feedback
Match a known external IP to the RMM agent rather than reconning every
candidate machine (Mike's correction during the Pavon GuruConnect-client
removal). Notes the GuruRMM agent-IP tracking gap (todo 7459428e).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 16:39:46 -07:00
3895aa363c sync: auto-sync from GURU-5070 at 2026-05-30 15:26:54
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-30 15:26:54
2026-05-30 15:27:00 -07:00
5b285321c0 scc: Session save and push from GURU-5070 at 2026-05-30 14:47
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 14:46:14 -07:00
2460d52b48 sync: auto-sync from GURU-5070 at 2026-05-30 11:51:56
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-30 11:51:56
2026-05-30 11:52:04 -07:00
df6a2dd5d8 memory: record GuruConnect v2 direction (SPEC-002)
Native-first full key fidelity + bidirectional file cut/paste/drag are Mike's
headline must-haves; WebRTC fallback only. Greenfield-salvage-cores,
standalone-first + RMM contract, hardened single-tenant but tenancy-ready.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 18:08:41 -07:00
e8ac7598de spec(gururmm): SPEC-017 mobile device support + Apple cert memory
- Update guru-rmm submodule pointer (SPEC-017 mobile device support)
- Record Apple Developer + MDM Push certs (acquired 2026-05-29); MDM push
  cert renews annually on the same Apple ID or all enrolled iOS devices break

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 17:11:37 -07:00
c093e7f8a4 memory: ACG's own MSP stack (ScreenConnect/Splashtop/Syncro/Datto RMM+EDR/GuruRMM) - not foreign agents
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:25:18 -07:00
6821d4d6fc sync: auto-sync from HOWARD-HOME at 2026-05-29 12:35:52
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-29 12:35:52
2026-05-29 12:36:03 -07:00
7d326f2fd0 docs: record Claude-Builder=PLUTO mapping + infra working-feedback memories
- Pluto memory/wiki/machine notes: Unraid VM "Claude-Builder" == hostname PLUTO ==
  172.16.3.36 (same box); RMM-agent access path when SSH key unauthorized; now also
  builds the GuruConnect Windows agent + hosts a Gitea Actions runner.
- New feedback memories: post #bot-alerts only for client/ticket-affecting RMM commands;
  proceed autonomously through routine infra/build prerequisites.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 10:37:44 -07:00
a00247bc74 chore: convert guru-connect to submodule; integrate ADR-008 + 2026-05-29 session log
guru-connect is now tracked as a submodule (azcomputerguru/guru-connect @ e3e95f8);
its working state was published to the GC repo first, so no content is lost. guru-rmm
advanced to include ADR-008 (GC integration boundary) replayed on top of the team's
Integrations Center / discovery advances. Includes the native-remote-control spec
(now inside the GC submodule), the versionable-products memory, and the session log.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 06:36:54 -07:00
8e35986765 sync: auto-sync from GURU-5070 at 2026-05-28 14:27:08
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-28 14:27:08
2026-05-28 14:27:12 -07:00
94a173ccff sync: auto-sync from HOWARD-HOME at 2026-05-28 12:26:48
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-28 12:26:48
2026-05-28 12:26:56 -07:00
f3c7fcdb8f sync: auto-sync from GURU-5070 at 2026-05-27 16:54:37
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-27 16:54:37
2026-05-27 16:54:45 -07:00
a42d657c55 docs(session)+rules: 2026-05-27 — Quantum M365 onboarding, IX autodiscover fix, Syncro emergency/labor/attribution rules
Session logs: root (Michael #32329 hosting offer + IX simplehost.email autodiscover DNS fix + Cascades #32332 emergency correction) + Quantum client log (M365 tenant 2fd0092b onboarding, break-glass GA, CA report-only).

Syncro rule overhaul:
- Emergency billing: prepaid -> 26184 @ hours x1.5 (was 26118); non-prepaid -> 26184 with channel rate (onsite $262.50 / remote+inshop $225)
- Never make up labor items (existing product + real name; QuickBooks sync)
- Corrections preserve original tech's user_id (commission); adding notes/labor never changes ticket owner

/remediation-tool: Conditional Access may be managed programmatically (report-only first + exclude break-glass + confirm before enforce); fabb3421 deprecated for customer tenants; Quantum tenant onboarded (gotchas table).

Memory: 4 new (no-madeup-labor, corrections-preserve-tech, ca-programmatic, quantum-godaddy-tenant) + updates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:57:55 -07:00
f94c0dfbe1 sync: auto-sync from HOWARD-HOME at 2026-05-27 11:24:44
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-27 11:24:44
2026-05-27 11:25:34 -07:00
e2b77c489b docs(memory): coord /messages API shape (paginated object, not array)
Pin down the coord messages endpoint shape after repeated mark-read failures:
{total,skip,limit,messages[]}; parse .messages[], strip control chars, read may be null.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:10:24 -07:00
bb9b962269 docs(session): 2026-05-27 — RMM Phase 2 deploy, Autotask integration, Tohono DoIT #32328
- Root log: GuruRMM Phase 2 authz/IDOR deployed (v0.3.31); Autotask creds verified + vaulted; /autotask scaffolded (kept local)
- Client log (new): Tohono O'odham DoIT — Starlink static IP / site-to-site research, ticket #32328
- Memory: Syncro is default PSA, Autotask opt-in (feedback_psa_default_syncro.md)

Note: .claude/commands/autotask.md intentionally left local/uncommitted per Mike.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:40:06 -07:00
1a0bcc80b0 chore(memory): fix shared-memory index issues
Audit of .claude/memory found and fixed:
- Broken link: Power Failure Runbook (../.claude/... -> ../...)
- 8 orphaned memories not in MEMORY.md index (Graph CA/password-reset,
  vault-write-sequence, GURU-BEAST-ROG, 3x Cascades, identity proposal)
  -> now indexed under their sections, so they're discoverable
- 5 files missing frontmatter -> added name/description/type
- Duplicate index entry for reference_workstation_setup.md -> deduped
- Trimmed the worst oversized index hooks (Syncro invoice line was 427 chars)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 07:37:59 -07:00
a885b54deb feat: make FEATURE_ROADMAP a living doc — dev definition-of-done + audit default
Mike's decision (2026-05-27): the roadmap is a maintained status-and-plan
tracker ([ ]=planned, [x]=shipped, dated), consulted going in and updated
coming out.

- gururmm-development-principles memory: new "Living Roadmap (MANDATORY)"
  principle — consult before building, update the entry in the SAME change
  when shipping/modifying; roadmap update is part of definition-of-done.
  Dev is the primary maintainer; the audit is the backstop.
- rmm-audit skill: state the convention explicitly — the roadmap pass
  default is reconcile-and-flip (not annotate-only).

(Companion gururmm-repo changes — DESIGN.md principle + baseline checkbox
reconcile — pushed separately to the gururmm repo.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 06:34:41 -07:00
6381874319 sync: auto-sync from GURU-5070 at 2026-05-27 06:11:29
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-27 06:11:29
2026-05-27 06:11:33 -07:00
2678d382a7 sync: auto-sync from GURU-KALI at 2026-05-27 05:33:56
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-27 05:33:56
2026-05-27 05:33:56 -07:00
262fd8de62 sync: auto-sync from GURU-KALI at 2026-05-26 20:08:37
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-26 20:08:37
2026-05-26 20:08:39 -07:00
35d7b3815e proposal: centralize machine config in identity.json
Merge Ollama fallback pattern with identity.json approach.
Store endpoint/fallback/prose_model to eliminate curl probes.
Same pattern as claudetools_root/vault_path (working).

Next: coord message rollout to populate fields on all machines.
2026-05-26 20:02:19 -07:00
8bdb9197c4 sync: auto-sync from GURU-KALI at 2026-05-26 19:59:15
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-26 19:59:15
2026-05-26 19:59:16 -07:00
d3f3d28fb6 sync: auto-sync from GURU-KALI at 2026-05-26 19:41:06
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-26 19:41:06
2026-05-26 19:41:07 -07:00
ac47f51a2b sync: auto-sync from GURU-5070 at 2026-05-26 19:32:05
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 19:32:05
2026-05-26 19:32:09 -07:00
4e97e20a2f sync: auto-sync from GURU-KALI at 2026-05-26 18:47:58
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-26 18:47:58
2026-05-26 18:48:02 -07:00
5bb2064716 sync: auto-sync from GURU-5070 at 2026-05-26 14:02:23
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 14:02:23
2026-05-26 14:02:27 -07:00
e4d3c1f4c2 wiki/memory: Syncro contact rule is global, not Cascades-specific
Update cascades-tucson.md Syncro billing pattern to note the blank-contact
rule applies to all customers. Update feedback_syncro_cascades_contact.md
to be incident-detail only (Meredith Kuhn default), pointing to the global
rule in feedback_syncro_blank_contact.md. Update MEMORY.md index entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 16:40:36 -07:00
cd80f5e447 feat: add wiki knowledge layer (Phase 0 + Phase 1 seed)
Implements LLM-compiled wiki layer between raw session logs and live
CONTEXT.md, inspired by Karpathy's knowledge base workflow. Adds wiki/
directory structure, article templates, spec docs, and seeds first two
articles (Cascades of Tucson, GuruRMM) from 60+ session logs.

Updates CLAUDE.md to check wiki first on all context-loading triggers.
Captures verified ACG IP/hostname map and Neptune physical-location
clarification (Dataforth D2, subnet overlap TODO) in memory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 15:42:38 -07:00