- Promote timer_entry → charge_timer_entry to default billing path; demote bare add_line_item to a clearly-labeled fallback for non-time items only. Mike caught the bare-add_line_item bug across 31 tickets on 2026-04-30; repeated on 3 tickets 2026-05-01. Time entries are required for Syncro reporting (hours per client, tech productivity, prepay burn). - Replace /tmp/*.json payload pattern with heredoc throughout. /tmp resolves to C:\tmp\ in the Write tool but %LOCALAPPDATA%\Temp\ in Git Bash on Windows — different real directories. Caused a wrong-comment incident on ticket #32225 2026-05-01 (rogue payload from prior session). Heredoc avoids the file handoff entirely. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7.0 KiB
7.0 KiB
Memory Index
Reference
- Syncro API — Invoice Verification Pattern - CRITICAL: List endpoint (/invoices?customer_id=X) does NOT return ticket linkage. Must query individual invoices (/invoices/{number}) to get ticket_id field. Invoice numbers are strings. Use ticket ID (not number) for comparison. Real case: falsely reported 31 tickets had no invoices (actually 29 had invoices, 2 were Non-Billable).
- Approval Workflow: Tools vs Projects - General tools (remediation-tool, onboard scripts, MSP utilities): Howard can modify OR Claude can execute with Howard/Mike approval. Projects (GuruRMM, etc.): require Mike approval, features→roadmap, bugs→bug list.
- Community Forum (Flarum) - Flarum forum at community.azcomputerguru.com, API access, database, posting workflow
- Radio Show Website - Astro static site at radio.azcomputerguru.com on IX server
- IX Server SSH Access - SSH access notes, no key auth from CachyOS workstation yet
- IX Access via Tailscale - IX server accessible with Tailscale on, no VPN needed
- Neptune Access via D2TESTNAS - Neptune must be routed through D2TESTNAS
- ACG-5070 Workstation - Windows 11, replaced CachyOS. SOPS vault, Ollama, all dev tools.
- Matomo Analytics - Self-hosted analytics at analytics.azcomputerguru.com, site IDs, tracking for all 3 sites
- Dataforth Contact - AJ - AJ at Dataforth, dataforthgit@ email forwarding to him
- TickTick Integration - OAuth API integration, MCP server, SOPS vault creds, project/task CRUD
- Client Docs Structure - clients//docs/ layout (overview, network, servers, cloud, security, rmm, issues). Template at clients/_client_template/.
- MSP Audit Scripts - server_audit.ps1 / workstation_audit.ps1 at projects/msp-tools/msp-audit-scripts/. ScreenConnect 80-char rule.
- GuruRMM Server Layout - SSH as
guru, repo at /home/guru/gururmm, deploy to /var/www/gururmm/dashboard/ - GuruRMM API — run script on agent - POST /api/agents/:id/command with command_type=powershell + command text; poll /api/commands/:id for stdout/stderr. Use instead of ScreenConnect copy-paste.
- Pluto Build Server - General-purpose Windows build VM, 172.16.3.36, SSH as Administrator, MSVC toolchain — use for any EXE (utilities, Howard's tools, GuruRMM agent)
Users
- Howard Enos — Mike's brother, technician, full trust/access. Known machine: ACG-TECH03L.
Feedback
- D2TESTNAS SSH Access - Use root@192.168.0.9 with Paper123!@#, not sysadmin
- Bypass Permissions Setting - Set permissions.defaultMode to bypassPermissions in settings.json on all machines
- 365 Remediation Tool - Always means Graph API app fabb3421, not CIPP
- Ollama Tier-0 Routing - Route drafts/summaries/classifications through Ollama (qwen3:14b). Mike designed ClaudeTools this way — not optional.
- Syncro Emergency Billing — Emergency = 1.5× multiplier, not additive. Branch by
customer.prepay_hours: no-prepaid →26184at actual hrs; prepaid →26118at hrs×1.5. Never stack. Always setprice_retail. - Identity precedence — Trust
.claude/identity.jsonover the system-reminderuserEmailhint when they disagree (shared-login machines). - 1Password — always use service token — Source OP_SERVICE_ACCOUNT_TOKEN from SOPS for every
opcall. Desktop-app integration prompts are unacceptable in agent flows. - /tmp path mismatch on Windows — Write tool and Git Bash resolve
/tmpto DIFFERENT real dirs. Use heredoc or workspace path for JSON payloads handed to curl. Caused wrong-comment incident on Syncro #32225. - Syncro — never set contact on Cascades tickets — Cascades tickets must have
contact_idblank; Syncro routes to the correct email distribution that way. Setting contact (often defaults to Meredith) overrides and breaks notifications. Never include the contact field in create or edit payloads for Cascades. - Syncro — log time entries first, never bare add_line_item — All Syncro work-time billing MUST go through
timer_entry → charge_timer_entry. Bareadd_line_itemleaves Syncro time tracking at 00:00:00 and breaks reporting. Mike caught this on 2026-04-30 across 31 tickets; I repeated the bug on 2026-05-01 across 3 more.
Machine
- ACG-5070 Workstation Setup - Windows 11 Pro clean install 2026-03-30, replaced CachyOS. All tools installed.
Pending Setup
- Mac gururmm setup pending — ACTION REQUIRED: run
bash scripts/install-hooks.shin gururmm repo on Mikes-MacBook-Air before any RMM work
Project
- GuruRMM Development Principles - MANDATORY: every feature needs full stack (backend, API, UI, docs, scalability). Product must work without AI agents (AI features are enhancements). Documented in guru-rmm/docs/DESIGN.md.
- Sync script bug — untracked files — Flagged for Mike.
.claude/scripts/sync.shline 53 misses untracked-only changes; one-line fix included. - MasterBooter Side Project — Howard's Rust+Slint Windows deployment toolkit at C:\MasterBooter, separate from client work. Do not log to clients/.
- Audio Processor Architecture - Segment-first pipeline: detect breaks before transcription for complete content capture
- Neptune Email Routing Issues - Multiple clients (devcon, Sorensen/rieussetcorp) have email not routing properly from Neptune
- Neptune SBR Email Routing Setup - Full SBR routing chain, config file locations, MailProtector integration, access methods
- Dataforth Test Datasheet Pipeline - Full pipeline rebuilt 2026-03-27. Server-side generation replaces DFWDS/Uploader. Website upload still broken.
- Dataforth Security Incident - DF-JOEL2 compromised, MFA deployed, IC3 filed. CA policies enforce April 4.
- Radio show co-host — Tara, not Tom — Co-host in 2014-s6e19 and 2016-s8e43 is Tara. "Tom" was hallucinated; rename complete. Multiple co-hosts have rotated through the show.