# [REDACTED_PHONE] (late) + [REDACTED_PHONE]

## Proactive Work — Resource Registry Bug Fix

### Research
- Scanned recent PRs across 6 repos: the-stables heavy on domain migrations + stablephone/stableemail features, poncho on streaming/thinking traces/agentcash metadata, x402scan CORS fixes
- Open issues: x402scan #623 (non-string query params not displaying, reported by Sam), #633 (docs fix), poncho has ~10 open issues, CraigClaw #23 (assigned to rsproule)

### Action Taken
- Fixed x402scan #623: `expandFields()` in `lib/x402/schema.ts` was dropping number and boolean primitive values from query param definitions
- Root cause: only `typeof raw === 'string'` and `typeof raw === 'object'` handled; numbers/booleans hit the `continue` fallthrough
- Also fixed array query value serialization in executor form
- PR #640: https://github.com/Merit-Systems/x402scan/pull/640

## Ryan Work Session (Feb 20 evening)

### agentcash — /api/send fixes
- **PR #77** (merged into master via earlier PRs): Moved `/api/send` into agentcash locally, gated with `@agentcash/router` dynamic `payTo` (v0.6.0+)
- **Root cause of 500**: A broken `middleware.ts` was on master — initialized `HTTPFacilitatorClient` without CDP auth headers, causing `RouteConfigurationError`. The revert commit accidentally restored it.
- **PR #87** (closed, folded into #77): Middleware deletion
- **PR #77 final state**: Deletes middleware + adds router-gated send route + bumps router to ^0.6.1 + adds JSON body to client hook
- ESLint `require-await` fix: handler uses `Promise.resolve()` instead of `async`
- **Env vars**: `NEXT_PUBLIC_BASE_RPC_URL` = Alchemy Base RPC URL, `NEXT_PUBLIC_SOLANA_RPC_URL` (optional), `TEMPO_RPC_URL` for MPP

### agentcash — OpenAPI cache removal
- **PR #89**: Removed in-memory `specCache` and `indexCache` from `openapi-cache.ts`
- Both `discover_api_endpoints` and `check_endpoint` now fetch OpenAPI spec fresh every call
- `getIndexEntry` changed from sync to async
- Closed PR #85 (Sam's force_refresh approach — superseded)

### agentcash-router — dynamic payTo
- **PR #63** (merged): Added `payTo` option to `.paid()` — static string or async function receiving Request
- Published as v0.6.0, then bumped to v0.6.1

### manhog (manual-hog) dashboard
- **PR #22** (merged): x402scan chart colors, DAU chart, WAU, exclude internal toggle
  - Chart colors: vivid palette (blue, purple, green, orange, rose, cyan, amber, teal, pink) — NO GRAYS
  - DAU chart: full-width bar chart at top, indigo bars, subtle horizontal-only grid
  - WAU: 48h view = single stat number; alltime = rolling 7-day line overlay
  - Exclude internal: checkbox filters out partner wallets from all charts
- **PR #23**: Fixed broken WAU query — old self-join was garbage; new approach fetches per-day wallet arrays and computes rolling 7-day window server-side

### poncho — artifacts panel
- **PR #229**: Preserved directory structure in artifacts panel (was being flattened)
  - Split `useArtifacts` (tree) vs `useArtifactsFlat` (flat for counts)
  - `DirectoryNode` component with collapsible chevrons + indented children
  - Rail + titlebar use `useArtifactsFlat` for visibility checks

### the-stables — Grok truncation fix
- **PR #49**: Grok Responses API sometimes returns truncated JSON (~1600 chars) despite `max_output_tokens: 30000`
  - Added `repairTruncatedJson()` — closes open strings, removes incomplete KV pairs, closes brackets
  - Returns partial results instead of 500ing

### Config change
- `#rfs-craig` channel ([REDACTED_PHONE]) now has `requireMention: false` — Craig responds to all messages without needing @mention

### PR #85 → PR #89 (agentcash cache removal)
- Sam originally created PR #85 (`craig/discovery-cache-bust`) with a `force_refresh` param approach
- rsproule wanted to go further: remove the entire cache layer, not just bust it
- Created PR #89 which fully removes `specCache` and `indexCache` from `openapi-cache.ts`
- Both `discover_api_endpoints` and `check_endpoint` now fetch OpenAPI spec fresh every call
- `getIndexEntry` changed from sync to async (returns `Promise<IndexEntry | undefined>`)
- PR #85 closed as superseded by #89

### Blocked items
- agentcash PR #77 preview deploy can't test because Coinbase CDP embedded wallet SDK CORS-blocks preview URLs. Only `agentcash.dev` is allowlisted. Must verify on prod after merge.

## Sam's Travel Emergency — Nor'easter Blizzard (Feb 22-23, 2026)

### Situation
- Sam was on flight UA 1745, 11:59 PM Sunday redeye DEN → NYC. Massive nor'easter/blizzard hitting NYC Sunday night through Monday. Blizzard Warnings for all NYC airports. Forecast: 12-24" snow, 47-60 mph gusts, whiteout conditions. Compared to Jonas 2016 (biggest in NYC history).
- Sam was in Eagle/Vail area (skiing presumably), needed to get to NYC by Monday night at the latest.

### Research & Advice Given
- Pulled NWS hourly forecasts for NYC (JFK area), IAD (Dulles), Pittsburgh, Harrisburg, Allentown — full route analysis
- Historical comparisons: Jonas 2016 (28" at EWR, 5 days to recover), Storm Fern Jan 2026 (83% EWR flights cancelled, 11k total), Jan 18 2026 storm
- Airlines already issuing travel waivers: AA covering 17 NE airports Feb 22-23, United same
- Scraped Google Flights via Firecrawl for real-time availability from DEN and EGE

### Options Explored
1. **Redeye (original plan)**: ~5% odds, strongly advised against
2. **Early Sunday flights DEN→NYC**: Best was DEN 8:15 AM → LGA 1:58 PM ($1,929 business) ~95% odds
3. **EGE 11:58 AM → EWR 5:59 PM nonstop** (United, $889) — recommended as #1 pick, later sold out
4. **IAD (Dulles) at 8:30 PM Sunday**: Only 3-5" snow at IAD vs 12-24" NYC. ~65-70% landing odds. Winter Storm Warning (not Blizzard). Then train/drive to NYC.
5. **Pittsburgh + drive**: Fly PIT Sunday, land 4 PM. Drive PIT→Harrisburg (clear), hotel overnight, drive Harrisburg→NYC Monday afternoon. ~70% odds of Monday night arrival. Route: I-76→I-78, last 100 miles through Lehigh Valley/NJ is the hard part (7-11" Allentown, 12-18" NJ).

### Key Insight on Pre-Cancellations
- Airlines cancel flights 24hrs+ out not because of departure weather, but because aircraft/crew rotations — planes coming FROM NYC won't make it to Denver, so return flights get cancelled even though Denver weather is fine.

### Repos learned
- **the-stables**: Merit-Systems/the-stables monorepo (`apps/` dir) — stableenrich has Grok endpoints at `app/api/grok/`
- Grok client: `grok-4-1-fast` model, `https://api.x.ai/v1/responses`, structured output via `text.format`