Commit Graph

669 Commits

Author SHA1 Message Date
201dfb1ed1 chore: update guru-rmm submodule for Client Portal feature
Updated guru-rmm submodule reference to include Client Portal feature and
three-level identity hierarchy (Dev → Partner → Client).

Submodule changes (be7b2ce):
- Added comprehensive Client Portal section to roadmap
- Updated Multi-Tenancy architecture for three-level hierarchy
- Integrated Client Portal with PSA module
- Removed customer portal from PSA out-of-scope list
- Documented impersonation chain and data isolation for clients

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:59:29 -07:00
095ee95ff5 chore: Update guru-rmm submodule reference
Added MSPBackups integration and Integration Catalog to roadmap (cc7dce0)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:47:39 -07:00
241258d9eb chore: Update guru-rmm submodule reference
Added multi-tenancy architecture decision and roadmap section (423e0af)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:33:20 -07:00
9b731a76b6 chore: Update guru-rmm submodule reference
Added standalone deployment capability to PSA/CRM roadmap (49260e6)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:19:45 -07:00
6bf66fa99e chore: Update guru-rmm submodule reference
Added PSA/CRM Module & Plugin Architecture to roadmap (687753d)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:10:53 -07:00
02d700e23c sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-18 17:25:32
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-18 17:25:32
2026-05-18 17:25:33 -07:00
1970919abd sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 15:57:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 15:57:51
2026-05-18 15:57:56 -07:00
f769a16846 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 11:28:04
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 11:28:04
2026-05-18 11:28:07 -07:00
a6a34ee478 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 11:00:37
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 11:00:37
2026-05-18 11:02:00 -07:00
3069b0ae51 Session log: Howard billing review and Syncro ticket updates 2026-05-18
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 08:50:26 -07:00
e3f703178a Session log: Mac Gitea connectivity diagnosis and sync resolution
Diagnosed and resolved ClaudeTools sync issues on Mac. Network connectivity
to internal Gitea server (172.16.3.20:3000) was working but slow through
Tailscale relay after office power failure recovery. Resolved submodule
conflict during rebase and successfully synced repository.

- Comprehensive network diagnostics (Tailscale, routing, connectivity)
- Manual submodule conflict resolution (guru-rmm reference)
- Context recovery from recent PC sessions (power failure recovery, GuruRMM dev)
- Directives refresh confirmed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 08:28:29 -07:00
9403dccffe sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-17 22:18:07
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-17 22:18:07
2026-05-17 22:23:02 -07:00
3baaf91183 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-17 22:07:52
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-17 22:07:52
2026-05-17 22:07:59 -07:00
acb0af9d3a sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 18:09:05
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 18:09:05
2026-05-16 18:09:33 -07:00
12dcce4050 Session log: VWP source code recovery from three backup rotation drives
Comprehensive session log covering today's work on the Valley Wide
Plastering app modernization project. Recovered Darv's VB6 source from
a set of backup rotation drives, including the production Orders_10A.exe
from the 97-Server\VWP2\ iteration workspace. Resolved the 4-year gap
question: no .vbp source newer than 2020-06-09 exists on any of the
three rotation drives; Darv worked in rename-and-try on the compiled
EXE only from 2021 onward.

Includes quick-resume instructions for tomorrow when the next drive is
connected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 18:08:21 -07:00
9a2a05e3cb feat(valleywide): drive 3 deep dive - VWP1.VHDX mount + 97-Server\VWP2 grab
Drive 3 yielded the biggest finds in the project so far.

VHDX mount + scan (D:\WIN7-Orders\Darv-2\VWP1.VHDX, 117 GB Hyper-V disk):
- Mounted read-only as F:, scanned in 85s, dismounted
- NOT Darv's dev box - it's the office "owner" admin workstation
- No newer source code found inside, but:
  - Vwp11.mdb (2023-07-27, 369 MB) - NEWEST DB snapshot anywhere
  - Vwp.mdb (2022-12-23, 769 MB) - on Desktop\Darv VWP
  - Orders Versions/ desktop folder with 2 EXEs + 7 shortcuts
  - The .lnk shortcuts all pointed to G:\VWP2\Orders*.exe - the
    "Aha!" that revealed where Darv's iteration happened
- Saved to source-code/from-VHDX-VWP1/

The VWP2 grab (D:\97-Server-G-Drive\g$ 2024-04-10\VWP2\):
- This is Darv's actual iteration workspace on the production
  Orders server (G: drive)
- 16.36 GB total, 1,061 files. Grabbed 886 files (~893 MB) filtered to
  *.exe, *.rpt, *.ocx, and VB6 source extensions:
  - 64 Orders*.exe versions - complete iteration history (includes the
    production Orders_10A.exe + Orders_10Z.exe variant + dozens more
    with Darv's "iterate-and-rename" naming pattern)
  - 820 Crystal Reports (.rpt)
  - 2 .ocx supporting controls
- Skipped 23 historical .mdb backups (15.8 GB) - we already have
  newer snapshots from 000_ASource and VHDX
- Skipped 6 large subfolders (HOLD, HHOLD, Pay_2021_0325, GWAC,
  20220205, 20211010 RPT) - mostly more MDBs
- Saved to source-code/from-VWP2-97server/

What we learned about the 4-year gap:
- No source code newer than 2020-06-09 ORDERS_C.vbp baseline found
  on any of the three rotation drives
- The 64 EXE versions in VWP2 go through 2022 - Darv was iterating
  and rebuilding compiled output but not updating his .vbp source
  control. This is consistent with his "rename and try" workflow
- The production exe (Orders_10A.exe) is in this batch - now we can
  use VB Decompiler Pro on it without needing the original drive

Helper scripts:
- scan_vhdx.ps1 - fast PowerShell scan of a mounted VHDX for source/DB
- find_vwp2.py - cross-CSV search for the VWP2 path
- vwp2_summary.py - size+type breakdown of the VWP2 folder
- debug_vwp2.py - one-off debug helper

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 18:02:47 -07:00
adbc9601bf feat(valleywide): drive 3 analysis - 117 GB Hyper-V VHDX lead identified
Drive 3 (12 TB, 11.99 TB used, only 43 GB free) — third VWP backup
rotation drive. Per Mike, all three drives are rotation copies; content
largely overlaps.

Net-new content vs drives 1 and 2:
- D:\WIN7-Orders\Darv-2\VWP1.VHDX (117 GB, 2023-09-01) — Hyper-V disk
  named "VWP1" in a Darv-2 folder. Likely Darv's later workstation.
  Strongest candidate for finding any 2021-2023 source code that
  postdates our 2020-06-09 ORDERS_C.vbp baseline. Not copied.
- D:\WIN7-Orders\WindowsImageBackup\VWIN7-PC\...vhd (22 GB) — Windows
  Image Backup of the VWIN7-PC machine, dated 2023-08-31.
- D:\VWP-FIN\ (~44 GB) — Finance machine backups + RAR archives. Not
  relevant to Orders modernization but useful for QuickBooks context.

SourceSafe search:
- 1224 SourceSafe-related matches but ALL are Visual Studio install
  directories (Microsoft Visual Studio\Common\VSS\) and .SCC sentinel
  files. No srcsafe.ini (actual repository) anywhere on this drive.
  The SourceSafe repo is on a different drive (likely Darv's personal
  drive, not in the office rotation).

Source code:
- No .vbp newer than 2020-06-09 baseline. Same TEST_VWP.vbp scaffold
  from drive 2 (2021-08-16, 810 bytes) present here too.

Updated .gitignore: added *.vhd (was missing — only had *.vhdx).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 17:46:38 -07:00
0f0f664e8e feat(valleywide): add drive 2 findings - 000_ASource + analyzer outputs
Drive 2 (label "Backup", 12 TB, 6.77 TB used) — second of N VWP
backup drives. Scanned via WizTree, analyzed with analyze_wiztree.py.

NEW source content:
- 000_ASource/ — Darv's active work-in-progress folder. Contains
  TEST_VWP.vbp (2021-08-16, only .vbp newer than the 2020-06-09 baseline),
  four frmLotInfo*.frm variants (2020-10 to 2021-08), and an
  MSSCCPRJ.SCC file confirming Darv used Visual SourceSafe.
- The accompanying Vwp.mdb (2022-10-19, 764 MB) stays on local disk
  per .gitignore — newest database snapshot we have.

Analysis CSVs:
- source-analysis/drive2-2026-05-16/ — per-category + per-keyword
  breakdown of drive 2's 3.95M files (vs drive 1's 1.87M). Categories
  largely match drive 1 but with ~2x volume.

Net findings vs drive 1:
- Confirmed 4-year gap: only 4 .vbp files newer than 2020-06-09 on
  drive 2, all the same TEST_VWP.vbp scaffold. Main ORDERS_C.vbp source
  remains 2020-06-09. Darv stopped active VB6 dev around mid-2020.
- 43 GB Win7 Backup-and-Restore set in D:\Archive\Darv-Win7-PC\ (2023)
  not copied — deferred to later drives, ZIPs extractable on demand.
- Master Darv folder is bit-for-bit duplicate of drive 1's master (135 GB,
  same file/folder counts). Skipped.

New helper scripts:
- find_newer_vbp.py — list .vbp files newer than a date, filter SDK noise
- drive2_inspect.py / drive2_priorities.py — drive-specific triage

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 17:42:19 -07:00
5359e7c49e feat(valleywide): recover VWP Orders VB6 source from D: backup drive
Recovered Darv's VB6 source for the Valley Wide Plastering Orders
application from the D: backup drive (label "Backup", 8 TB, 5.3 TB used).
This is the first time we've had the actual source — prior session only
had a single frmPayroll.frm from the AD server.

Three project variants identified across two snapshots:
- Full-Project/   (2,129 files, 124 MB) — D:\Office-Estimates\Darv\Full\Project\
- Kingston-Project/ (2,189 files, 130 MB) — D:\Office-Estimates\Darv\Kingston\Project\
- Source/         (170 files, 559 MB)   — D:\Office-Estimates\Darv\Source\ wholesale
- SOURCE-HOLD/    (3 files, 1 MB)       — D:\Office-Estimates\Darv\SOURCE HOLD\

Latest ORDERS_C.vbp date is 2020-06-09 (Kingston snapshot). Production
Orders_10A.exe was live as of April 2024 — open question whether newer
source exists on other backup drives Mike will scan next.

Also includes per-category and per-keyword analysis CSVs from a WizTree
file-list export, plus the analyzer script that produced them
(re-runnable for the next drive's CSV).

VMs (VWIN7-DW.vdi 8.3 GB + XP-for-ORDERS_copy.vdi 2.8 GB), the live
VWP.mdb, and the 393 MB raw WizTree CSV stay on disk only — gitignored.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 17:36:27 -07:00
7386460f55 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 16:59:53
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 16:59:53
2026-05-16 16:59:57 -07:00
a6fb8d2ab6 chore: remove remaining qwen scratch files
tmp_qwen_reason.py, tmp_qwen_test.py, tmp_qwen_test2.py — additional
local qwen test scratch from today's benchmarking work. The routing
decisions live in OLLAMA.md; the throwaway scripts don't need to ship.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:56:37 -07:00
f157795fb7 chore: remove scratch benchmark files
Removes tmp_bench_8b.py, tmp_hw_check.ps1, and tmp_ollama_bench.py
from DESKTOP-0O8A1RL's qwen3:8b benchmark. The routing decisions and
numbers are captured in OLLAMA.md; the scripts were one-off scratch
work and don't need to live in the repo.

Untracked counterparts on GURU-BEAST-ROG (benchmark_qwen_3_6.py,
rescore_qwen.py, qwen-benchmark-2026-05-16.{md,json}) were also
removed locally.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:54:59 -07:00
97f93dd6d7 docs: fix broken markdown tables in OLLAMA.md
The qwen3:8b routing update inserted footnote lines mid-table in both
the "What Ollama owns" and "When to Use Which Model" sections, splitting
each table in half so renderers treated the qwen3.6 rows as paragraph
text. Moved footnotes below the closing table row in both places.

Also updated the bottom "Rule of thumb" line: previously named qwen3:14b
with a "2x faster" claim that's now stale on DESKTOP-0O8A1RL where 8b is
the prose model. Generalized to "the per-machine prose model".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:54:20 -07:00
887f0ae266 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 16:26:04
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 16:26:04
2026-05-16 16:26:07 -07:00
4aadf16a9f feat: add qwen3:8b for DESKTOP-0O8A1RL, update Ollama routing
Benchmarked 2026-05-16 on DESKTOP-0O8A1RL (RTX 5070 Ti Laptop, 12 GB VRAM):
- qwen3:8b: 100% VRAM fit (10.9/10.9 GB) -> 74-86 tok/s
- qwen3:14b: 73% VRAM (11.3/15.6 GB split) -> 17-18 tok/s (4.8x slower)
- qwen3.6:  41% VRAM (11.3/27.5 GB split) -> 17-19 tok/s

qwen3:14b overflows 12 GB VRAM at runtime (9.3 GB GGUF = 15.6 GB loaded).
qwen3:8b fits entirely in VRAM and matches the reference machine speed.

Updated OLLAMA.md: added qwen3:8b to models table, per-machine routing
table, benchmark results. Updated CLAUDE.md model one-liner.
Routing: qwen3:8b for prose on DESKTOP-0O8A1RL, qwen3:14b everywhere else,
qwen3.6 for strict-format tasks on all machines.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 16:25:57 -07:00
2c5f10faaa Session log: qwen3.6 benchmark, route strict-format to 3.6
Benchmarked qwen3.6 (36B MoE) vs qwen3:14b and qwen3:32b on 16
representative prompts. qwen3.6 scored 15/16 vs 14b 11/16 and 32b
12/16, winning every strict-format/adherence test (multi-step rules,
weekend-aware scheduling, prompt-injection resistance, word-limit
summary). Single reasoning regression noted for re-check at qwen3.7.

Updated .claude/OLLAMA.md (Models, Documentation Engine, and
When-to-Use tables) and .claude/CLAUDE.md one-line model summary to
route strict-format work to qwen3.6 and keep bulk prose on qwen3:14b
(2x faster). Also removed openclaw npm package + ~/.openclaw data dir
earlier in the session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:03:07 -07:00
ee67a8bcf7 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 15:59:41
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 15:59:41
2026-05-16 15:59:44 -07:00
c9c4c01cdc sync: auto-sync from HOWARD-HOME at 2026-05-16 15:10:35
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-16 15:10:35
2026-05-16 15:10:37 -07:00
2919b3dec6 sync: auto-sync from HOWARD-HOME at 2026-05-16 13:49:46
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-16 13:49:46
2026-05-16 13:49:48 -07:00
0c0cc45c3f sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 13:13:50
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 13:13:50
2026-05-16 13:13:53 -07:00
dd0ef45645 feat: implement agent-os standards system and feature planning tools
- Split CODING_GUIDELINES.md into 19 indexed standards files under .claude/standards/
  - 9 from CODING_GUIDELINES (conventions, powershell, security, api, git, gururmm)
  - 10 from session log tribal knowledge (syncro, ssh, gitea, python, client, gururmm)
- Add .claude/standards/index.yml for cheap relevance-based lookup
- Add /inject-standards command: load targeted standards per task instead of full guidelines
- Add /shape-spec command: pre-implementation spec for GuruRMM features (plan.md,
  shape.md, references.md, standards.md) with mandatory out-of-scope gate
- Add docs/tech-stack.md and docs/mission.md for ClaudeTools API
- Add projects/msp-tools/guru-rmm/docs/tech-stack.md and mission.md for GuruRMM
- Update CLAUDE.md commands table with /inject-standards and /shape-spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 12:59:49 -07:00
2fa8295ad0 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 11:38:55
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 11:38:55
2026-05-16 11:38:58 -07:00
df5afb3084 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 10:30:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 10:30:51
2026-05-16 10:30:54 -07:00
6c1cb9ed83 sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-16 09:02:02
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-16 09:02:02
2026-05-16 09:02:06 -07:00
7bd2bb544a sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 08:48:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 08:48:51
2026-05-16 08:48:55 -07:00
83e8e4498c feat: add /feature-request skill for Howard to submit GuruRMM roadmap requests 2026-05-16 08:48:44 -07:00
8369e7fae5 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 21:14:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 21:14:51
2026-05-15 21:14:54 -07:00
478f62b1d0 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 19:21:37
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 19:21:37
2026-05-15 19:21:41 -07:00
f91355d993 sync: auto-sync from GURU-BEAST-ROG at 2026-05-15 18:35:44
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-15 18:35:44
2026-05-15 18:35:45 -07:00
c20acb29dc sync: auto-sync from GURU-BEAST-ROG at 2026-05-15 17:29:38
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-15 17:29:38
2026-05-15 17:29:39 -07:00
de8d2decdb sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 16:41:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 16:41:51
2026-05-15 16:41:54 -07:00
457bcadb38 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 16:08:19
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 16:08:19
2026-05-15 16:08:22 -07:00
8c522b3880 docs: harden agent parity rule — all platforms in same change, no exceptions
- CODING_GUIDELINES.md: tighten parity rule wording to match Mike's intent:
  "add feature X" means Windows + Linux + macOS in the same commit
- memory: add feedback_gururmm_agent_parity for future session enforcement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 15:52:15 -07:00
ee900fd103 docs: apply vix-inspired token efficiency optimizations
- CLAUDE.md: trim ~45 lines — compress Live State Tracking, Automatic
  Context Loading, File Placement, Ollama sections; add single-agent
  guidance for coupled explore→implement tasks
- CODING_GUIDELINES.md: add GrepAI-first rule with token cost rationale;
  add GuruRMM platform parity matrix and cross-platform coding standards
- OLLAMA.md: expand tier-0 scope to include diff summarization, error
  categorization, agent phase handoff summaries, client email drafts,
  ticket classification with priority

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 15:50:29 -07:00
31088cb8de sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 15:23:02
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 15:23:02
2026-05-15 15:23:05 -07:00
6d6de33cb7 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 09:15:55
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 09:15:55
2026-05-15 09:15:58 -07:00
fc3a769320 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 07:50:23
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 07:50:23
2026-05-15 07:50:26 -07:00
85f234e67b sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 06:22:21
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 06:22:21
2026-05-15 06:22:24 -07:00
b6c981d0ef sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 06:20:56
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 06:20:56
2026-05-15 06:20:59 -07:00
415476e36c sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 06:18:33
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 06:18:33
2026-05-15 06:18:36 -07:00