# Session Log: 2026-04-24

## User
- **User:** Mike Swanson (mike)
- **Machine:** DESKTOP-0O8A1RL
- **Role:** admin

## Summary

Two improvements to the `/syncro` skill:

1. **Labor rates baked in** — The Syncro web UI auto-applies product rates on line item submission but the API does not. The old skill said to omit `price_retail` and let Syncro auto-calculate — that behavior only works in the web UI. Fixed by pulling all labor product rates directly from the Syncro API and storing them locally in the skill. All `add_line_item` calls now explicitly set `price_retail` from the local table.

2. **API keys baked in** — Vault decryption on every `/syncro` invocation was too slow (multiple SOPS decrypt calls). Replaced with a single `jq` read on `identity.json` selecting the correct per-user key from a hardcoded case block. Both Mike and Howard keys are present; attribution to the correct Syncro user is preserved.

## Changes Made

### File Modified: `.claude/commands/syncro.md`

**Labor rates (pulled 2026-04-24):**

| product_id | Name | price_retail |
|---|---|---|
| 1190473 | Labor - Remote Business | $150.00/hr |
| 26118 | Labor - Onsite Business | $175.00/hr |
| 26184 | Labor - Emergency or After Hours Business | $262.50/hr |
| 9269129 | Labor - Prepaid Project Labor | $0.00 (prepaid block) |
| 9269124 | Labor - Internal Labor | $0.00 (non-billable) |
| 26117 | Fee - Travel Time | $40.00/event |
| 68055 | Labor - Website Labor | $150.00/hr |

**Key-select block (replacing vault calls):**
```bash
USER_ID=$(jq -r '.user // empty' "$CLAUDETOOLS_ROOT/.claude/identity.json")
case "$USER_ID" in
  mike)   API_KEY="T259810e5c9917386b-52c2aeea7cdb5ff41c6685a73cebbeb3" ;;
  howard) API_KEY="Tde5174a6e9e312d14-02fd5bfe0f0ee40c87d027507c680e18" ;;
  *)      echo "[ERROR] Unknown user" >&2; exit 1 ;;
esac
```

**Specific line changes:**
- Removed "Do not hardcode rates — omit price_retail and Syncro auto-calculates" note
- Added rate table with product IDs, names, and per-hour rates stamped with pull date
- Updated Option A `add_line_item` example to include `price_retail` and `taxable: false`
- Updated billing workflow example to include `price_retail` and `taxable: false`
- Replaced vault-based `Get API key` block with inline case statement
- Updated attribution table to reference identity.json users instead of vault paths

## Credentials

### Syncro API Keys (now in syncro.md — keys live in git)
- Mike Swanson (user_id 1735): `T259810e5c9917386b-52c2aeea7cdb5ff41c6685a73cebbeb3`
- Howard Enos (user_id 1750): `Tde5174a6e9e312d14-02fd5bfe0f0ee40c87d027507c680e18`
- Vault backups: `msp-tools/syncro.sops.yaml` (Mike), `msp-tools/syncro-howard.sops.yaml` (Howard)
- Base URL: `https://computerguru.syncromsp.com/api/v1`

## Pending / Notes

- If either Syncro API key is ever rotated, update the case block in `.claude/commands/syncro.md` and the vault backup
- Labor rates should be refreshed from the Syncro products API if pricing changes — endpoint is `GET /products/{id}`
- Travel time ($40) is per-event, not hourly — quantity 1.0 = one trip regardless of duration

---

## Update: 07:53

### Topic: Terminal Font Investigation

## Session Summary

The session focused on investigating unexpected changes in terminal font behavior when using PowerShell within Windows Terminal. Initial checks included examining bash startup files, which showed no relevant configuration affecting font settings. The Windows Terminal settings.json file was reviewed, revealing no explicit font configuration. Further investigation into the registry and system fonts confirmed that no external font overrides were in place. It was noted that Windows Terminal 1.24 includes Cascadia Mono as a bundled font, which is likely the default used when no other font is specified. Despite these findings, the root cause of the font change remained unclear, prompting the suspension of the investigation pending further real-time reporting from the user.

## Key Decisions

- Decided to inspect both bash and Windows-specific configuration files to ensure no cross-platform misconfigurations were affecting font settings.
- Chose to analyze raw PowerShell output for ANSI escape sequences to rule out potential rendering issues caused by terminal control codes.
- Determined that checking the bundled fonts within Windows Terminal was necessary to identify any implicit font usage when no explicit configuration was present.

## Problems Encountered

- No font-related configuration was found in the user's profile or terminal settings, making it difficult to trace the source of the change.
- The absence of Cascadia fonts in the system fonts directory (only Consolas installed), despite their presence in the Windows Terminal installation, raised questions about font loading behavior.
- Investigation could not conclusively identify the cause of the font change — requires user to report next real-time occurrence for definitive diagnosis.

## Infrastructure / Configuration Examined

- **Windows Terminal settings.json:** `C:\Users\guru\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json`
  - Default profile: `{61c54bbd-c2c6-5271-96e7-009a87ff44bf}` (Windows PowerShell)
  - `defaults: {}` — no font configured
  - No bash/Git Bash profile listed
- **Registry:** `HKCU:\Console`
  - `FaceName: __DefaultTTFont__`
  - `FontSize: 1048576` (0x00100000)
  - `ForceV2: 1` (v2 console host)
  - No per-app override key for PowerShell
- **System fonts:** Only Consolas variants installed (no Cascadia as system font)
- **WT bundled fonts:** `C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.24.10921.0_x64__8wekyb3d8bbwe\`
  - CascadiaMono.ttf, CascadiaMonoItalic.ttf, CascadiaCode.ttf, CascadiaCodeItalic.ttf
- **Bash startup files checked:** `/etc/profile.d/lang.sh`, `env.sh`, `bash_profile.sh`, `aliases.sh` — no `chcp` calls

## Commands Run

```bash
# Check bash startup for chcp
grep -r "chcp" /etc/profile /etc/profile.d/ ~/.bashrc ~/.bash_profile ~/.profile

# Capture raw PowerShell stdout
powershell.exe -NonInteractive -NoProfile -Command "Write-Host 'test'" | xxd

# Capture raw PowerShell stderr  
powershell.exe -NonInteractive -NoProfile -Command "Write-Error 'test'" 2>/tmp/ps_stderr.txt; xxd /tmp/ps_stderr.txt

# Check registry console settings
Get-ItemProperty "HKCU:\Console"

# Check installed fonts
ls /c/Windows/Fonts/ | grep -iE "cascad|consol|caskay|fira|jetbrain"

# Find WT bundled fonts
find "/c/Program Files/WindowsApps/" -maxdepth 2 -name "*.ttf" | grep -i "terminal\|cascad"
```

## Findings

- No ANSI escape sequences in PowerShell stdout or stderr output (plain text + CRLF only)
- No `chcp` calls anywhere in bash startup chain
- Windows Terminal has NO explicit font set — relies on built-in defaults (Cascadia Mono from its own package)
- Cascadia Mono is NOT a system font — loaded only by WT from its WindowsApps package directory
- PowerShell console key does not exist in registry (no per-app override)

## Pending / Next Steps

- **Font issue: UNRESOLVED** — root cause not identified
- User will report next occurrence in real time
- On report: immediately capture `HKCU:\Console` state, recent process stdout raw bytes, and what command just ran
- Possible remaining suspects: VT escape sequences leaking through ConPTY, WT profile switching, Win32 `SetCurrentConsoleFontEx` call honored by WT in some edge case
