Commit Graph

1751 Commits

Author SHA1 Message Date
a9ef5d1466 sync: auto-sync from AD2 at 2026-06-17 13:35:55
Author: Mike Swanson
Machine: AD2
Timestamp: 2026-06-17 13:35:55
2026-06-18 13:02:27 -07:00
sysadmin
cc183a5a91 Add AD scripts and stage import instructions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-18 13:02:23 -07:00
sysadmin
234f346b46 Session log 2026-04-03: WO import, 7B support, PG migration started
- 33K work orders imported, 2.27M records linked
- 7B exact-match formatter added (31 params, 120VAC, Packing Check List)
- TXT formatting refined to match QB TAB positions exactly
- PostgreSQL 18 installed on AD2, database created
- SQL Server Express uninstalled
- Full Dataforth audit document generated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-18 13:02:23 -07:00
ad1e32fdb0 sync: auto-sync from GURU-5070 at 2026-06-18 12:57:51
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-18 12:57:51
2026-06-18 12:58:07 -07:00
0797478a96 wiki: compile darrell-delphen (seed) 2026-06-18 12:54:57 -07:00
6f4cadb16f sync: auto-sync from GURU-5070 at 2026-06-18 12:49:38
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-18 12:49:38
2026-06-18 12:51:08 -07:00
9d2d233f1e dataforth/testdatadb: 8B/5B/SCM render verify results + convergence plan
Stage+verify (template-gated, no slotmaps/precision yet) vs Hoffman, content-only:
15 models content-perfect, 17 precision-distance, 70 NULL (need slotmaps), 8B38/7B
family-specific. Remaining work = AD2's existing DSCA machinery (slotmaps / Math.fround
QB rounding / frequency-AAC accuracy labels). Recommend converging with AD2's DSCA path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:44 -07:00
3aafc1e755 dataforth/testdatadb: mine 8B/5B/SCM Final-Test templates from Hoffman (136 models)
Root cause of the ~5,148 unpublished 8B/5B/SCM PASS records (driving the fix):
(1) parseRawData wrongly consumes a PASS/FAIL line as the step-response line for
    non-DSCA families that omit the "0","0",v line (8B45/8B49/5B39/SCM5B33...) ->
    drops the first Final-Test group -> measurement-count mismatch -> null render.
(2) Even parsed, the renderer has ONE hardcoded DATA_LINES['8B'] (RTD-shaped), so
    models like 8B45 (frequency input, == DSCA45 structurally) get wrong param
    names/specs. Same class as DSCA -> needs per-model templates.

Mined per-model templates from the Hoffman originals (published siblings) for all
136 mineable models via tools/mine-hoffman-dsca.py (family-agnostic extractor):
8b5bscm-templates.json = {accOut, accHeader, rows[name,spec], _srcSerial}.
Input-type split: 72 voltage / 18 temp / 12 current (accuracy already handled) +
10 frequency (8B45/5B45 — same unsolved freq-accuracy as DSCA45) + 24 7B/other.
Only 3 niche models (17 units) have no Hoffman original.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:44 -07:00
84c7579a3d dataforth/testdatadb: wire UI presets + publish buttons; add /api/search sort/dir
Backend (deployed live on AD2, service restarted, + repo copy resynced — it was
far behind the deployed server):
- /api/search: add whitelisted sort/dir (NULLS LAST) so sortable headers and the
  "Latest uploads" preset work. web_status filter and POST /api/upload already
  existed on the server; the stale repo copy now matches live.

Frontend (redesign prototype):
- "Latest uploads" preset (web_status=on + sort=api_uploaded_at desc) and
  "Not yet published" (web_status=off) are now active presets.
- Push to Web (inspector) + Re-push (multi-select) wired to POST /api/upload
  behind a confirm() gate; refresh WEB status after. Validated idempotently on a
  published record (unchanged:1, errors:0).
- "Retested units" stays disabled — needs a retest flag in the pipeline (next).

tools/preview-proxy.py: forward POST so the publish buttons work in same-origin preview.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:44 -07:00
c2335e859d dataforth/testdatadb UI: fix cert fit (transform-scale) + publish-state chips
- fitCert: replace the flaky CSS `zoom` (Firefox support is recent/inconsistent)
  with transform:scale() measured against the widest line (+ right margin and
  font-load retries) so the cert always scales to fit the inspector with no
  horizontal clip. Validated live on a narrow 5B cert (0.74x) and a wide DSCA45
  cert (0.55x) against the real AD2 dataset.
- inspector Web field -> Published (green) / Not published (amber) chips.
- widen default inspector 480 -> 500px.
- tools/preview-proxy.py: serve the prototype AND reverse-proxy /api to the live
  AD2 server so the cert iframe is same-origin during preview — styleCert/fitCert
  read iframe.contentDocument, which silently no-ops when the iframe is loaded
  cross-origin straight from AD2 (why the fit looked broken in earlier previews).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:44 -07:00
c5643ee419 dataforth/dsca33-45: recover lost specs from Hoffman API (56/58 models)
The DSCA33/DSCA45 main spec files lost in the cryptolocker wipe are recoverable:
the original software published correct certs to the Hoffman product API before
the wipe and our null-skipping renderer never overwrote them. Mine per-model
Final-Test templates (names + specs + verbatim accuracy headers) straight from
those originals instead of requesting spec files from Dataforth/John.

- dsca33-45-templates.json: 56 models (DSCA33 34/35, DSCA45 22/23); only
  DSCA33-1948 + DSCA45-1746 (24 units) lack an original.
- mine-hoffman-dsca.py: the re-runnable miner.
- DSCA33-45-HOFFMAN-RECOVERY handoff for the AD2 session (incl. the gate:
  validate each render vs its Hoffman original before enabling live rendering).
- memories: Hoffman recovery (supersedes the spec-gap "need John" note) and the
  AD2 SSH MTU-blackhole root cause/fix; errorlog entries (syncro jq, ssh correction).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:43 -07:00
dcd3eda634 wiki: compile cascades-tucson (full) 2026-06-18 12:49:25 -07:00
fa297f6930 sync: auto-sync from HOWARD-HOME at 2026-06-18 12:31:06
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 12:31:06
2026-06-18 12:31:14 -07:00
90f69715f0 sync: auto-sync from HOWARD-HOME at 2026-06-18 12:24:43
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 12:24:43
2026-06-18 12:24:54 -07:00
e5e0f3efb8 sync: auto-sync from HOWARD-HOME at 2026-06-18 12:23:28
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 12:23:28
2026-06-18 12:23:38 -07:00
7747d6c95d chore: stop tracking controller-query scratch files (.sta.json); gitignore temp patterns
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:23:20 -07:00
e0f9b1e221 sync: auto-sync from HOWARD-HOME at 2026-06-18 12:21:23
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 12:21:23
2026-06-18 12:22:42 -07:00
ee19e83684 sync: auto-sync from Mikes-MacBook-Air.local at 2026-06-18 10:17:39
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-06-18 10:17:39
2026-06-18 10:17:40 -07:00
7c5329d698 session-log: ACG website Phase 3B enhancements + PIM RMM onboarding
Phase 3B enhancements deployed to ww9:
- Radio show promotion (header badge + promo bar)
- 3-step visual funnel after Trust section
- Strengthened calculator CTAs (primary button + service links)
- Increased vertical rhythm with responsive section padding

Patriot Internal Medicine onboarded to GuruRMM:
- Client created with two locations (Tucson and Sonoita)
- Enrollment keys vaulted (NORTH-WOLF-6270, LIGHT-HARBOR-9617)
- Bot alerts posted to #dev-alerts

Also: pulled curated brand assets from Gitea, answered pfSense ping question

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-18 10:14:24 -07:00
4cb32703b9 sync: auto-sync from HOWARD-HOME at 2026-06-18 09:36:06
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 09:36:06
2026-06-18 09:36:14 -07:00
7a10dff74c sync: auto-sync from HOWARD-HOME at 2026-06-18 08:29:03
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 08:29:03
2026-06-18 08:29:11 -07:00
95a29da79c sync: auto-sync from HOWARD-HOME at 2026-06-18 08:15:50
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-18 08:15:50
2026-06-18 08:16:10 -07:00
41b6fcdacb dataforth/testdatadb UI v2: paper-framed fit-to-width cert, lazy cert load, stats dropdown, refined states/typography/focus, omni s:/m:/t: + encoded-serial routing, recent-search history, multi-select + copy serials, sortable headers + date chips, responsive collapse
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 07:11:45 -07:00
d162dc7726 dataforth/testdatadb UI: resizable inspector + fit-to-width cert + quick-search presets; drop redundant PASS/FAIL selector
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 07:05:34 -07:00
55407e8601 dataforth/testdatadb: multi-AI UI redesign — clickable single-file prototype
Vanilla single-file (no build/CDN) command-center redesign of the testdatadb search
UI: omni-search with serial/model/text routing + auto-select fast path, dense
monospace results table with PASS/FAIL pills + web-published indicator, persistent
split-pane datasheet inspector (iframe to /api/datasheet), left filter rail
(result/date/model/station/log), server pagination, CSV export, URL state, keyboard
nav (/ ↑↓ ↵ Esc), clinical light theme. Hits the existing API; deployed to AD2 as
public/index.redesign.html (preview at :3000/index.redesign.html). Synthesized from
Grok + Gemini concepts (both converged on this command-center design).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 06:36:20 -07:00
bfe375044d sync: auto-sync from GURU-5070 at 2026-06-18 05:58:48
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-18 05:58:48
2026-06-18 05:59:05 -07:00
67de39a9d0 dataforth: handoff doc for AD2 session — Fix 2 (DSCA rebuild) STAGE 2-3 + Fix 5 + cleanup
Remote SSH/VPN to AD2 keeps flapping; hand the remaining datasheet fixes to the
local AD2 session. Includes the per-subtype approach (DSCA_TEMPLATES from staged
originals — STAGE 1 done, dsca-templates.json on AD2 = 126 models), the render-wiring
+ per-subtype byte-validation gate, Fix 5 (379 backfill via legacy_cert_text), the
discipline (backup/save-state/validate-before-publish), and the derive-dsca-templates
tool. Ref ticket #32441.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 05:59:05 -07:00
5fc874f2b3 sync: auto-sync from HOWARD-HOME at 2026-06-17 23:09:29
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 23:09:29
2026-06-17 23:09:39 -07:00
f36fb97eb8 sync: auto-sync from HOWARD-HOME at 2026-06-17 22:46:27
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 22:46:27
2026-06-17 22:46:37 -07:00
dc4560cf27 sync: auto-sync from HOWARD-HOME at 2026-06-17 17:49:01
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 17:49:01
2026-06-17 17:49:20 -07:00
7ad6202e6e sync: auto-sync from GURU-5070 at 2026-06-17 17:34:25
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-17 17:34:25
2026-06-17 17:34:41 -07:00
ed2819ac87 sync: auto-sync from GURU-5070 at 2026-06-17 16:18:26
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-17 16:18:26
2026-06-17 16:18:44 -07:00
28442a6696 dataforth: hardened fix spec for test-datasheet defects (multi-AI reviewed)
Consolidates AD2's diagnosis + independent Grok/Gemini review into an
implementation spec for the 5 fixes (RTD label, DSCA Final-Test rebuild, retest
supersede rule, encoded-serial importer decode, 379 backfill) with per-fix
validation gates and a cross-cutting re-publication discipline. Drives the
AD2-side implementation. Ref ticket #32441.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 16:18:44 -07:00
8f602b3e17 sync: auto-sync from HOWARD-HOME at 2026-06-17 16:01:19
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 16:01:19
2026-06-17 16:01:28 -07:00
cbe7175fbb sync: auto-sync from HOWARD-HOME at 2026-06-17 15:47:50
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 15:47:50
2026-06-17 15:48:18 -07:00
0166f1db64 sync: auto-sync from GURU-5070 at 2026-06-17 14:19:50
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-17 14:19:50
2026-06-17 14:24:35 -07:00
40ff8accd3 sync: auto-sync from HOWARD-HOME at 2026-06-17 13:53:40
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 13:53:40
2026-06-17 13:53:49 -07:00
23e2493082 sync: auto-sync from HOWARD-HOME at 2026-06-17 13:26:13
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 13:26:13
2026-06-17 13:26:21 -07:00
ba1f962974 wiki: compile cascades-tucson (full) — catalog reporting SaaS + proposed KPI dashboard (Ashley Jensen) 2026-06-17 13:01:41 -07:00
cabbc0eb6e sync: auto-sync from HOWARD-HOME at 2026-06-17 12:34:44
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 12:34:44
2026-06-17 12:35:36 -07:00
Winter Williams
05d5ed83ac sync: auto-sync from GURU-BEAST-ROG at 2026-06-17 12:18:02
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-17 12:18:02
2026-06-17 12:18:09 -07:00
2b792ee5d1 agy(gemini): fix false auth-abort in retry loop + add quota fallback to default model
While using the new 3-retry gemini path for live VPN research, two bugs surfaced:
- emit_or_fail checked auth_failed INSIDE the retry loop; a benign mid-run token-refresh line
  matched the over-broad auth regex (bare login|credential|authenticat|oauth|401) and aborted the
  retries with a false "auth error" - even though `gemini -p` auth tested fine. Moved auth-classify
  to AFTER the retries (it only picks the final error message now) and tightened auth_failed to real
  signatures (invalid_grant, not authenticated, login with google, token expired, ...).
- Added quota_exhausted() + a QUOTA FALLBACK: the pinned strong model (gemini-3.1-pro-preview) hit
  "exhausted your capacity on this model" mid-session; emit_or_fail now retries once on the default
  (lighter) model by stripping -m (separate quota). Validated: capped pro run -> fell back -> 2.9KB answer.

CT_THOUGHTS Thought 2 Resolution updated with both. (Search-bot reliability hardening continues.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 12:09:58 -07:00
Winter Williams
18d7a01d28 sync: auto-sync from GURU-BEAST-ROG at 2026-06-17 11:53:00
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-17 11:53:00
2026-06-17 11:53:14 -07:00
2ad2f5b5b7 sync: auto-sync from GURU-5070 at 2026-06-17 11:44:54
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-17 11:44:54
2026-06-17 11:45:09 -07:00
388f66ca11 errorlog: search-bot fallback entries from this session's e2e validation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 10:41:22 -07:00
315f45bf7c search-bots: fix reliability (diagnosed) - gemini 3-retry + grok xsearch auto-fallback to gemini
Mike's must-fix. Diagnosed from RAW output of failing queries (not guessed):
- grok xsearch = TIMEOUT: grok-4.20-multi-agent web_search runs past budget on multi-part queries
  (286s/280s, rc=124, still searching - 183 thoughts, only progress-noise text); buffered json => total loss.
- gemini search = INTERMITTENT empty turn (a clean re-run gave a real 2.6KB answer in 122s); the wrapper
  retried only once, so two empties in a row failed spuriously.

Fixes:
- ask-gemini.sh emit_or_fail: retry up to 3x with 3s/6s backoff (was 1).
- ask-grok.sh xsearch: --output-format streaming-json (salvage partials) + AUTO-FALLBACK to
  ask-gemini.sh search when grok doesn't finish (rc!=0 or empty). Validated e2e: grok timed out
  (rc=124) -> fell back -> gemini returned a real sourced answer (UniFi Teleport invite-link API).

grok's own multi-agent timeout is an xAI-side limitation; the fallback makes xsearch reliable regardless.
Docs: grok SKILL.md xsearch row + CT_THOUGHTS Thought 2 Resolution.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 10:38:44 -07:00
58343bd656 sync: auto-sync from HOWARD-HOME at 2026-06-17 10:16:13
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 10:16:13
2026-06-17 10:16:21 -07:00
c239b3ece6 sync: auto-sync from HOWARD-HOME at 2026-06-17 10:10:48
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 10:10:48
2026-06-17 10:10:59 -07:00
9de4764ca6 wiki: compile lens-auto-brokerage (seed)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 09:57:12 -07:00
265fa0edd8 sync: auto-sync from HOWARD-HOME at 2026-06-17 09:52:59
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 09:52:59
2026-06-17 09:53:09 -07:00