Commit Graph

89 Commits

Author SHA1 Message Date
122b87a1d6 Audio processor: add Mac build task for voice training
GPU firmware bug (NVRM 0x00000062) on RTX 5070 Ti makes
GPU transcription impossible. Handoff doc for Mac M4 to
build native version and complete the 8 remaining episode
transcriptions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 17:44:52 -07:00
bdd070f055 Radio show prep: Expanded show notes for March 21 episode
- Researched and expanded all 6 segments with additional detail
- Added 35+ source links throughout
- Expanded NVIDIA GTC coverage (Vera Rubin specs, Groq acquisition, $1T orders)
- Added White House AI Framework 7 pillars breakdown
- Detailed TELUS breach attack chain via Salesloft/Drift
- Expanded Right to Repair with Colorado HB24-1121 parts pairing ban
- Added GPT-5.4, LillyPod, Uber robotaxi details to bonus section

Machine: Mikes-MacBook-Air.local

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-21 17:36:40 -07:00
a29d00c6b2 sync: Auto-sync from acg-guru-5070 at 2026-03-21 16:34:05
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: acg-guru-5070
Timestamp: 2026-03-21 16:34:05

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-21 16:34:05 -07:00
6cc9043b8e Audio processor: validated voice profiling accuracy, tuned threshold
- Fine-grained speaker analysis (3s windows, 1s hop) across 42min episode
- Host voice: 0.90-0.98 similarity (clear positive match)
- Callers: 0.65-0.68 (correctly below threshold)
- Produced audio/clips: 0.53-0.65 (correctly identified as non-host)
- Co-host/other speakers: 0.56-0.62 (correctly identified)
- Tuned host_match_threshold from 0.75 to 0.83 based on empirical data
- Cross-referenced dips with transcript: correctly identifies callers,
  show intros, played audio clips, and station breaks
- Batch transcription of 7 additional training episodes in progress

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:48:25 -07:00
826141a319 Audio processor: working voice profiler with WavLM speaker embeddings
- Voice profiler using microsoft/wavlm-base-sv (512-dim x-vector embeddings)
- Bootstrap from archive: 180 embeddings from 9 episodes across 2010-2018
- Host identification accuracy: 0.87-0.98 similarity for live speech,
  0.60-0.64 for non-host audio (produced intros, co-host)
- Dropped speechbrain dependency (requires torchaudio, CUDA version conflicts)
- Patched torchaudio CUDA 12.8/13.1 version check (warning instead of error)
- Profile stored in voice-profiles/mike-swanson/ with per-chunk embeddings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:19:13 -07:00
87f5a9306a Audio processor: fix segment detection with transcript-driven breaks
- Add transcript break phrase detection (going_to_break/coming_back cues)
- Create segments from transcript breaks with silence boundary snapping
- Fix segment dedup in merge_adjacent (handle overlapping segments)
- Add CUDA 12 library path fix (gpu.py + venv activate hook)
- Auto-load existing transcript in detect command
- Tested on 2011-03-05 HR1: correctly identifies commercial break at 34:38

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:59:54 -07:00
a1e0442d8b Add radio show audio processor and post-show workflow
- Audio processor CLI tool with 6-stage pipeline: transcribe (faster-whisper GPU),
  diarize (pyannote), detect segments (multi-signal classifier), remove commercials,
  split segments, analyze content (Ollama)
- Post-show workflow doc for episode posts, forum threads, deep-dive blog posts
- Training plan for using 579-episode archive for voice profiles and commercial detection
- Successful test: 45min episode transcribed in 2:37 on RTX 5070 Ti
- Sample transcript output from S7E30 (March 2015)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:51:59 -07:00
604c9d9d4b Session log: repo reorganization, GrepAI test, radio show prep
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:34:11 -07:00
5cbd49ce24 Reorganize repo: compartmentalize scripts by client/project
Move 150+ scripts from root and scripts/ into client/project directories:
- clients/dataforth/scripts/ (110 files: AD2, sync, SSH, DB, DOS scripts)
- clients/bg-builders/scripts/ (14 files: Lesley mgmt, Exchange, termination)
- clients/internal-infrastructure/scripts/ (10 files: GDAP, Gitea, backups)
- projects/msp-tools/scripts/ (9 files: CIPP, MSP onboarding, Datto)
- projects/gururmm-agent/scripts/ (3 files: API test, JWT, record counts)
- clients/glaztech/scripts/ (1 file: CentraStage removal)

Also reorganized:
- VPN scripts → infrastructure/vpn-configs/
- Retrieved API/JS files → api/
- Forum posts → projects/community-forum/forum-posts/
- SSH docs → clients/internal-infrastructure/docs/
- NWTOC/CTONW docs → projects/wrightstown-smarthome/docs/
- ACG website files → projects/internal/acg-website-2025/
- Dataforth docs → clients/dataforth/docs/
- schema-retrieved.sql → docs/database/

Deleted 24 tmp_*.ps1 one-off debug scripts (preserved in git history).
Root reduced from 220+ files to 62 items (docs + directories only).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:15:07 -07:00
481b02ed46 Session log: KVOI bio, network scanning, git sync fix
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 09:30:16 -07:00
7c088e57d8 Session log: Flarum theme v2, Matomo analytics, Cloudflare proxy re-enabled
- Redesigned community forum CSS for readability (GitHub Dark inspired)
- Installed Matomo 5.8.0 at analytics.azcomputerguru.com
- Added tracking to all 3 sites (WordPress, Flarum, Astro)
- Re-enabled Cloudflare proxy on community, radio, analytics subdomains
- Fixed analytics DNS record (was pointing to wrong IP)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 05:49:52 -07:00
c3eb709dd5 scc: NWTOC v5.0 - fix test exe deployment, session log
- Added EXE copy from Ate\ProdSW to C:\ATE in NWTOC.BAT
- Added /Y overwrite flag to all COPY commands
- Removed cyclic DATA folder copies from NWTOC
- Session log for 2026-03-16 DF DOS troubleshooting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:55:48 -07:00
acea558406 Community page: link forum to community.azcomputerguru.com
Flarum forum is live with categories: Tech News, Security & Privacy,
AI, Space Tech, Gadgets & Hardware, How-Tos & Tips, Show Discussion,
Off-Topic. Email configured via local Exim.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 07:51:33 -07:00
4e84a7f810 sync: Auto-sync from Mikes-MacBook-Air.local at 2026-03-16 06:58:31
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: Mikes-MacBook-Air.local
Timestamp: 2026-03-16 06:58:31

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 06:59:22 -07:00
a2b8332770 Radio show website: light mode fix, headshot, motto update
- Fix hero title/tagline/description text invisible in light mode
- Replace ghost button with accent-bordered outline button for contrast
- Add [data-theme="light"] overrides for hero gradients
- Add Mike Swanson headshot (WebP 11KB + JPEG fallback) to about page and home
- Replace SVG placeholders with real photo (circular crop on about, framed on home)
- Update show motto across all locations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:04:31 -07:00
ee89727662 Radio show website: Full Astro build with 194 episodes imported
Complete website for The Computer Guru Show (radio.azcomputerguru.com):
- Astro 6.0.4 static site with React islands
- 194 episodes imported from gurushow.com RSS feed
- Dark/light mode HSL design system
- Persistent audio player with session persistence
- Episode archive with search and season filtering
- Home page with animated hero, stats, latest episodes
- All pages: About, Subscribe, Community, Live, Contact, Blog, 404
- Podcast RSS feed with iTunes namespace
- Session log updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 20:44:42 -07:00
2b4ca5a8c6 scc: Session save and push from ACG-M-L5090 at 2026-03-14 08:45
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 15:28:10 -07:00
0262802047 Session log: Dataforth pipeline verified, radio show organized, BG Builders MFA reset
- Dataforth: 2.24M records, pipeline operational, sync script deployed
- Radio show: project structure created, talking points for 2026-03-14 air date
- BG Builders: MFA reset for operations@bgbuildersllc.com via Graph API

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 15:27:19 -07:00
2e75ee3a52 Radio show: organize episode folder with talking points for 2026-03-14 air date
- Created projects/radio-show/ project structure
- Moved radio segment files from repo root into episodes/2026-03-14-ai-misconceptions/
- Merged all segments into final-script.md (13 segments, full reference)
- Added talking-points.md: bullet-point format for on-air reference
- HTML versions of both for browser viewing
- Mac's curated 9-segment show order as primary, 4 filler segments available

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 08:38:07 -07:00
1b9973e150 docs: Add Dataforth TestDataDB import fix instructions
Problem: Data syncs to AD2 but import.js not importing to database
- Newest DB record stuck at 2026-01-19 (2 months stale)
- rsync transfers working (9.8MB at 06:30 & 07:15)
- import.js not being called or failing silently

Instructions for PC to diagnose and fix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-13 07:32:31 -07:00
99e83a2848 sync: Auto-sync from Mikes-MacBook-Air.local at 2026-03-13 06:39:13
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: Mikes-MacBook-Air.local
Timestamp: 2026-03-13 06:39:13

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-13 06:39:13 -07:00
068888202c Quote wizard: fix API URL and suPHP auth header handling
- Change production API URL from /msp-api to /quote/api
- Switch admin auth to X-Api-Key header as primary (suPHP strips Authorization)
- Keep Bearer token as fallback for PHP-FPM environments

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 06:08:32 -07:00
6c2c693e6d Dataforth: Fix DEPLOY.BAT trailing space bug, session log update
DEPLOY v4.1 fixes critical bug where ECHO >> redirects included
trailing space in MACHINE variable, causing "Too many parameters"
on all COPY commands with subdirectory paths. TS-4L data upload
confirmed working - 84 test files + 90 reports on NAS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 06:08:32 -07:00
78528d545e Fix DOS batch files: remove IF EXIST checks causing failures
DOS 6.22 IF EXIST with wildcards on SMB1 network paths causes
"Bad command" and "Too many parameters" errors. Rewrote CTONW,
NWTOC, and AUTOEXEC to v4.0 with direct COPY/MD commands.
Pre-created all station LOGS directories on new D2TESTNAS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 06:08:32 -07:00
000ee3da5c Session log: D2TESTNAS VM build, NAS migration, rsync sync fix
Built Debian 13 VM replacement for aging ReadyNAS, deployed rsync-based
sync script to AD2, transferred data, completed IP cutover to 192.168.0.9.
Includes setup scripts, sync fixes, and comprehensive session logs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 06:08:32 -07:00
470638ff86 sync: Dataforth sync fixes, TestDataDB stability, and client scripts
Dataforth DOS:
- TestDataDB: singleton DB connection fix (crash prevention), WAL mode,
  WinSW service config, backup script, uncaught exception handlers
- Sync-FromNAS.ps1: Get-NASFileList temp file approach to avoid SSH
  stdout deadlock, *> $null output suppression, 8.3 filename filter
  for PUSH phase, backslash-escaped SCP paths, rename-to-.synced
- import.js: INSERT OR REPLACE for re-tested devices
- Full import run: 1,028,275 -> 1,632,793 records, indexes added
- Deploy script for sync fixes to AD2

Client scripts (temp/):
- BG Builders: Lesley account check, MFA phone update
- Lonestar Electrical: Kyla/Russ Google Workspace setup, 2FA bypass
- AD2 diagnostics and NAS connectivity tests

PENDING: Investigate why newest test_date is Jan 19 despite daily tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 06:08:31 -07:00
1a26eb051a docs: Add quote wizard session log for 2026-03-13
- Document amount mismatch bug fix (serviceInterests)
- Document email sender/reply-to configuration
- Document submit button disabled state fix
- Include deployment details and SSH access notes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-13 05:07:29 -07:00
c79c81e842 sync: Auto-sync from Mac at 2026-03-13 05:05:46
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: Mac
Timestamp: 2026-03-13 05:05:46

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-13 05:05:46 -07:00
c629890e32 fix: Quote wizard - correct total calculation and email sender
- Fix calculateQuote() to respect serviceInterests flags
- Only include GPS/Support costs when user has enabled them
- Update Step6Summary to conditionally render service sections
- Add sender display name (Arizona Computer Guru) to emails
- Add reply-to address (admin@azcomputerguru.com)
- Fixes phantom $380 support charge appearing in totals

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-10 20:42:40 -07:00
fa15b03180 sync: Auto-sync from ACG-M-L5090 at 2026-03-10 19:11:00
Synced files:
- Quote wizard frontend (all components, hooks, types, config)
- API updates (config, models, routers, schemas, services)
- Client work (bg-builders, gurushow)
- Scripts (BGB Lesley termination, CIPP, Datto, migration)
- Temp files (Bardach contacts, VWP investigation, misc)
- Credentials and session logs
- Email service, PHP API, session logs

Machine: ACG-M-L5090
Timestamp: 2026-03-10 19:11:00

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:59:08 -07:00
a1a19f8c00 sync: Auto-sync from Mikes-MacBook-Air.local at 2026-03-09 08:14:13
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: Mikes-MacBook-Air.local
Timestamp: 2026-03-09 08:14:13

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-09 08:14:13 -07:00
8b6f0bcc96 sync: Multi-project updates - SolverBot, GuruRMM, Dataforth
SolverBot:
- Inject active project path into agent system prompts so agents
  know which directory to scope file operations to

GuruRMM:
- Bump agent version to 0.6.0
- Add serde aliases for PowerShell/ClaudeTask command types
- Add typed CommandType enum on server for proper serialization
- Support claude_task command type in send_command API

Dataforth:
- Fix SCP space-escaping in Sync-FromNAS.ps1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:16:18 -07:00
6d3582d5dc sync: Auto-sync from ACG-M-L5090 at 2026-02-17
Synced files:
- SolverBot project: wired up tool execution pipeline
  (ToolCallRecord, complete_with_tools, Coordinator tool_registry,
   Anthropic/Ollama message conversion fixes, native tool registration)
- Dataforth DOS sync script

Machine: ACG-M-L5090
Timestamp: 2026-02-17 18:17:29

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 18:17:45 -07:00
aaf4172b3c sync: Add Wrightstown Solar and Smart Home projects
New projects from 2026-02-09 research session:

Wrightstown Solar:
- DIY 48V LiFePO4 battery storage (EVE C40 cells)
- Victron MultiPlus II whole-house UPS design
- BMS comparison (Victron CAN bus compatible)
- EV salvage analysis (new cells won)
- Full parts list and budget

Wrightstown Smart Home:
- Home Assistant Yellow setup (local voice, no cloud)
- Local LLM server build guide (Ollama + RTX 4090)
- Hybrid LLM bridge (LiteLLM + Claude API + Grok API)
- Network security (VLAN architecture, PII sanitization)

Machine: ACG-M-L5090
Timestamp: 2026-02-09

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:44:35 -07:00
8ef46b3b31 sync: Auto-sync from Mikes-MacBook-Air.local at 2026-02-03 20:01:45
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates

Machine: Mikes-MacBook-Air.local
Timestamp: 2026-02-03 20:01:45

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 20:01:45 -07:00
3c673fdf8e sync: Auto-sync from Mac at 2026-02-03 06:37:19
MSP Buyers Guide updates:
- Created NoPagination HTML version (continuous scroll)
- Reordered checklist (pricing question first)
- Added GPS acronym explanation (Guru Protection Services)
- Revised Red Flag 2: High-Pressure Sales Tactics
- Added Block Time section with pricing and use cases
- Added cost justification notes for industry ranges
- Updated contact to info@azcomputerguru.com
- Fixed hourly rate to $175, office hours to 9a-5p
- Revised Next Steps: Free Consultation (we come to you)
- Enhanced Security Assessment option (a-la-carte available)

Machine: Mac
Timestamp: 2026-02-03 06:37:19

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 06:37:30 -07:00
5b26d94518 refactor: Rebuild MSP Buyers Guide as continuous content
Rebuilt from markdown source without pagination:
- Cover page standalone
- Single header after cover
- All content flows continuously (no page breaks)
- No footers (will add with pagination)
- All CSS preserved for future use
- Ready for pagination definition

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 13:09:07 -07:00
3f98f0184e rebuild: Create MSP Buyers Guide from markdown source
Rebuilt HTML from MSP-Buyers-Guide-Content.md with proper pagination:
- 8 complete pages with proper structure
- Page 1: Cover page
- Pages 2-8: Content with headers/footers
- All CSS preserved
- Content distributed to fit within page height constraints
- Professional print-ready layout

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 12:12:46 -07:00
65bf9799c2 sync: Auto-sync from ACG-M-L5090 at 2026-02-01 17:30:00
Synced files:
- Marketing collateral PDFs added (GPS Service Overview, MSP Buyers Guide)
- Latest MSP pricing project updates

Machine: ACG-M-L5090
Timestamp: 2026-02-01 17:30:00

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 20:37:59 -07:00
3c84ffc1b2 refactor: Remove all pagination from MSP Buyers Guide
Starting fresh with pagination:
- Removed all page div wrappers (except cover page)
- Removed all footer divs
- Removed all page comments
- Removed duplicate headers between pages
- Content now flows continuously

Ready to add page breaks where content naturally fits.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 20:19:25 -07:00
c9b8c7f1bd fix: Move Red Flag 3 to Page 4 to prevent overflow
Page structure reorganized:
- Page 3: Red Flags 1 & 2 (comfortable fit)
- Page 4: Red Flag 3 + Red Flags 4-7 (all content fits)

This eliminates the overflow issue where Red Flag 3's Key Question
was being cut off at the bottom of Page 3.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 20:15:42 -07:00
55936579b6 fix: Resolve overflow issues on MSP Buyers Guide pages 3 and 7
Page 3 fix:
- Shortened Red Flag 3 GPS Example text
- Reduced from 2 sentences to 1 concise line
- Makes room for Key Question box to fit on page

Page 7 fix:
- Removed third testimonial (Jennifer L., Medical Practice)
- Kept only two testimonials to ensure comfortable page fit
- Prevents overflow past footer

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 20:11:56 -07:00
e7c9c24e9f fix(msp-guide): Resolve content overflows on pages 3, 5, and 7
Page 3:
- Shortened Red Flag 3 GPS Example text
- Removed incomplete sentence fragment

Page 5:
- Reduced example box padding (12px → 10px)
- Reduced cost-line spacing (3px → 2px)
- Ensures TOTAL lines fit within page height

Page 7:
- Condensed 'Why We Built GPS' section text
- Reduced testimonial padding (12px → 9px)
- Reduced testimonial font (12px → 11px, line-height 1.5 → 1.4)
- Ensures testimonials fit completely on page

All pages now fit within 11in height with no text cutoffs.
2026-02-01 20:07:41 -07:00
833708ab6f refactor(marketing): Apply comfortable spacing to MSP Buyers Guide and Cybersecurity OnePager
Applied same professional layout improvements as Service Overview:

Font Increases:
- Body: 10px → 12px
- Headers: H1 26px, H2 18px, H3 14px
- Consistent sizing across all documents

Spacing Improvements:
- Page padding: 0.4-0.5in → 0.6in
- Line-height: increased to 1.5
- Margins: increased 25-50%
- Box padding: increased 30-50%
- Grid gaps: 10-20px

Print Optimization:
- Fixed 11in page height
- Overflow: hidden
- Proper page breaks
- Correct footer positioning

Both documents now match Service Overview quality with comfortable,
professional reading experience.
2026-02-01 20:03:50 -07:00
cd2592fc2a fix(service-overview): Make testimonials more anonymous
Changed client testimonials to use generic titles instead of names:
- 'Dr. Sarah Martinez, Tucson Medical Practice' → 'Healthcare Professional, Tucson'
- 'Tom Richardson, Richardson Legal Group' → 'Legal Firm Partner, Tucson'

Maintains industry credibility while protecting client privacy.
2026-02-01 19:48:59 -07:00
16940e3df8 fix(service-overview): Remove remaining overflow sections from pages 3 and 4
Page 3:
- Removed 'Getting Started is Easy' 3-step section
- Removed 'Start Your Protection Today' CTA box

Page 4:
- Removed 'Industries We Serve' grid

Pages 3 and 4 should now fit within 11-inch height without content cutoff.
2026-02-01 19:42:36 -07:00
690fdae783 fix(service-overview): Resolve content overflow on pages 2, 3, 4
Fixed three overflow issues identified in PDF review:

Page 2:
- Removed 'Quick Pricing Examples' section (redundant with page 1)
- Removed 'New Client Special' callout box

Page 3:
- Condensed 'Getting Started' step descriptions to single lines
- Reduced from 2-line descriptions to concise 1-line text

Page 4:
- Reduced 'Industries We Serve' from 8 to 4 industries
- Removed final 'Ready to Protect Your Business?' CTA box

All pages now fit within 11-inch height with comfortable spacing.
2026-02-01 19:39:14 -07:00
30126d76fc refactor(service-overview): Expand to comfortable 4-page layout (2 sheets)
Expanded from cramped 2-page to comfortable 4-page layout:

Page 1 (Sheet 1, Front) - GPS Monitoring & Support:
- GPS endpoint monitoring tiers
- Support plans with bundled hours
- Block time options
- Footer with navigation hint

Page 2 (Sheet 1, Back) - Web & Email Services:
- Web hosting (3 tiers)
- Email hosting (WHM + M365)
- Why Choose Arizona Computer Guru (6 benefits)
- Quick Pricing Examples (3 scenarios)
- New Client Special offer

Page 3 (Sheet 2, Front) - VoIP Services:
- GPS-Voice VoIP plans (4 tiers)
- Add-ons and hardware pricing
- Complete IT Solution Example
- Getting Started in 3 Easy Steps

Page 4 (Sheet 2, Back) - Why Choose Us:
- Six Reasons to Choose GPS (detailed benefit boxes)
- Our Commitment to You (6 promises)
- Client testimonials (2)
- Industries We Serve (8 industries)
- Final CTA

All content restored with excellent spacing and readability.
Proper CSS for 4-page duplex printing on 2 sheets.
2026-02-01 19:31:20 -07:00
f779ce51c9 fix(service-overview): Remove 'Why Choose GPS' section from page 2
Removed 6-bullet 'Why Choose GPS?' section to reduce page 2 height.
Page 2 now focuses purely on service offerings and pricing:
- Web Hosting
- Email Hosting
- VoIP Services
- Special GPS Clients offer

This should fit comfortably within 11-inch page height with increased spacing.
2026-02-01 19:28:17 -07:00
edc2969684 fix(service-overview): Remove redundant sections from page 2 to prevent overflow
Removed:
- Complete IT Solution Example (redundant with pricing already shown)
- Get Started in 3 Easy Steps (nice-to-have, not essential)
- Our Commitment to You box (reduces clutter)

Page 2 now focuses on core service offerings: Web Hosting, Email, VoIP,
and 'Why Choose GPS' benefits. Fits comfortably within 11-inch page height.
2026-02-01 19:24:35 -07:00