Pulled 2026-06-01 from https://github.com/esaruoho/apple and the local clone at /Users/esaruoho/work/apple.
Authored on /Users/esaruoho/work/apple. Some commits are squashed into the PRs above when they land upstream.
| Date | SHA | Message |
|---|---|---|
| 2026-06-01 | 7f00a22 | fleet: live ACTIVITY face + host-attributed service ownership |
| 2026-06-01 | 0afb6d3 | sessions: guard curs_set against Python 3.14 ERR-raising |
| 2026-06-01 | e89b838 | wiki: Apple Events & Remote Apple Events — explainer + Fleet third-transport + test result |
| 2026-06-01 | f859f6a | machine-card: compute panel_actions live, not cached with shape |
| 2026-06-01 | 7908eaf | fleet: handshake publishes peer cards so Fleet.app shows SSH-only Macs |
| 2026-06-01 | cfc3236 | Fleet × Panel: nudge Syncthing on write so remote runs return in ~seconds |
| 2026-06-01 | b5ad49f | fleet: reach legacy Macs — ssh-rsa SHA-1 + python2 shape probe |
| 2026-06-01 | bd23ee3 | panel-worker: throttle heartbeat to 30s (it was churning the Syncthing folder) |
| 2026-06-01 | 6ff234d | fleet: fix run sheet stuck on "Running…" + add a runLocal timeout |
| 2026-06-01 | b8c418e | fleet: scroll vertically too — tall cards (RUN actions) overflowed the screen |
| 2026-06-01 | d591468 | Fleet × Panel: per-machine action cards + run locally or over Syncthing |
| 2026-06-01 | 0109a5e | machine-card/fleet: run on any Mac, any macOS version |
| 2026-06-01 | 7e870ab | fleet: version-independent responder (fleet-serve.py) for pre-macOS-13 Macs |
| 2026-06-01 | a00ef13 | fleet: add HertsiMacPro to handshake reach list |
| 2026-06-01 | 6470508 | fleet: install-fleet.sh — one-file bootstrap to join the Fleet on any Mac |
| 2026-06-01 | d356a83 | wiki: Fleet × Panel unification — the inter-computer script runner |
| 2026-06-01 | bead2b1 | machine-card: publish full running telemetry + bin/fleet handshake |
| 2026-06-01 | 42968a5 | panel-app: fix "Starting Apple Panel…" forever-hang (unbuffered server stdout) |
| 2026-06-01 | c930da8 | diagnostics + live system dashboard: why-no-mount, mac-stats/temps/thermals |
| 2026-06-01 | e850f79 | panel-app: Apple Panel as a native WKWebView app (not a browser) |
| 2026-06-01 | d77f68d | disk-overview: Disk Utility–style volume snapshot + two Apple Panel cards |
| 2026-06-01 | 7a212e2 | fleet: exchange FULL live card over the LAN socket (auto-trust same-LAN) |
| 2026-06-01 | 74c6fa1 | fleet: /fleet slash command — build + open Fleet.app |
| 2026-06-01 | e4252bc | machine-card protocol: bin/machine-card emitter + Fleet.app side-by-side viewer |
| 2026-05-30 | 97a705c | tag-result-handler: stop orphaning spine-owned results + add archive fallback |
| 2026-05-30 | df414ba | mail-flag-worker: stop the 24/7 CPU-pinning no-progress loop |
| 2026-05-29 | 06da52c | AppleToolbox: arm stickies watcher only while Stickies.app is running |
| 2026-05-29 | efbdf3e | AppleToolbox: stop stickies watcher from being the top energy hog |
| 2026-05-29 | b85f5bd | AppleToolbox: 🌐 Mirror status row in menu and --live viewport |
| 2026-05-29 | 8f1dc5e | AppleToolbox: detect own activation as notification-click signal |
| 2026-05-28 | 0334ed2 | auto-regen: drop docs/ regen step — docs/ is hand-curated |
| 2026-05-28 | d4959e9 | AppleToolbox: open notify-inbox folder in Finder, not foreground self |
| 2026-05-27 | c8fc4b2 | topbar: add 🧬 Spine status row to menu + live view |
| 2026-05-26 | b7ea50e | .gitignore: ignore apple-report machine stack artifacts + var/ runtime logs |
| 2026-05-26 | ba1af11 | TODO: mark 'Send the Sal email' as done — sent 2026-05-26 |
| 2026-05-26 | 6a91101 | tag-watcher: route 'process' tag through bin/process-router (voice-memos / whisp pipeline) |
| 2026-05-26 | 5c1d0e3 | md-to-clipboard: fix 144-byte empty-RTF stub (heredoc-vs-pipe stdin contention) + 2 bash discoveries |
| 2026-05-26 | ece12a5 | wiki: AppleToolbox as the unified LaunchAgent surface + Cloudcity notify-inbox bus |
| 2026-05-26 | 2c0c917 | voice-memos: process pipeline — 3 front doors (Voice Memo title #process tag, Finder process tag, process CLI) → 1 worker |
| 2026-05-26 | 9b8d15c | Mac → iPhone push triad: imessage / icloud-drop / notify-iphone CLIs |
| 2026-05-26 | 4d860a1 | mail: consolidated atlas of 12 Mail.app internal behaviors for automation |
| 2026-05-26 | 44746fa | mail-flag: force-download .partial.emlx via NSString writeToFile, route inline attachments |
| 2026-05-26 | b27b09a | mail-flag: FSEvents callback fix + retry partials each tick |
| 2026-05-26 | 37caf56 | AppleToolbox: replace mail-flag polling Timer with FSEventStream |
| 2026-05-26 | cd46de5 | mail-flag pipeline v2: SQLite + .emlx detection, thread bundles, ROWID-flip-safe dedup |
| 2026-05-26 | db314ce | snap: point at tile-dock-snap.scpt (renamed from DockSnap.scpt) |
| 2026-05-26 | 2f85e34 | docs: revert auto-mirror from b982bd4 — keep curated 10 only |
| 2026-05-26 | b982bd4 | apple-report: stack line uses raw NVMe size, not APFS container |
| 2026-05-26 | 083ca78 | apple-report: stack one-liner + --save, decimal-TB storage; wiki/devices/ for 13 device families |
| 2026-05-26 | 4cfcea2 | auto-regen: hook + GitHub Action for zero-token index/site upkeep |
| 2026-05-26 | b70f347 | TODO: mark wiki<->docs backlink pass complete (commit 31b2dd0) |
| 2026-05-26 | 31b2dd0 | wiki: backlink to public docs/ pages from canonical wiki/ source pages |
| 2026-05-26 | f29efa5 | docs: 5 more public-wiki pages — asobjc, finder-tag-pipeline, spotlight, wwsd, automator-vs-shortcuts |
| 2026-05-26 | 0f83580 | docs: HomePod-sensor critique correction + 4 topic pages (triggers/tiers/sal-corpus/chassis) |
| 2026-05-26 | da72d59 | sessions: show custom titles alongside first prompt |
| 2026-05-26 | 7b3deaa | docs: HomePod/Siri roundtrip critique + WWDC 2016 Session 717 evidence |
| 2026-05-26 | 92b2920 | docs: link Roundtrip Rule to its source — wiki/entities/sal-soghoian.md#L632 |
| 2026-05-26 | 66bf9ba | docs: 'Automation for the Rest of Us' — Sal-aligned framing |
| 2026-05-26 | 3d6bd4a | docs: GitHub Pages placeholder at esaruoho.github.io/apple |
| 2026-05-26 | a73995f | readme: refresh catalog totals, add tag-app feature line, TODO entry for public wiki |
| 2026-05-26 | fecd593 | folder-to-mbox: turn any folder of email-shaped text files into Apple Mail mailbox bundles |
| 2026-05-26 | d7efa34 | apple-tag-apps: bootstrap one .app per Finder tag + consolidate under /Applications/AppleToolbox/ |
| 2026-05-25 | 2a5ba68 | sessions: header points to standalone upstream esaruoho/sessions |
| 2026-05-25 | 72be425 | sessions: drop day-of-week format; only 'today' is special, rest are dates |
| 2026-05-25 | 596c5f0 | sessions: lead with calendar timestamp, demote uuid hash to dim trailer |
| 2026-05-25 | 4d8cd5a | sessions: fix column chaos — parse ISO timestamps, compact age, tilde-path |
| 2026-05-25 | 520821e | sessions: multi-provider (Claude+Copilot+Codex) + live refresh + turns/size cols |
| 2026-05-25 | bd90481 | sessions: TUI session picker — third surface alongside AppleToolbox + bbs-app |
| 2026-05-25 | 6466412 | stickies-claude: launcher echoes the prompt before exec claude |
| 2026-05-25 | 2f04c35 | stickies-claude: launcher passes --dangerously-skip-permissions to claude |
| 2026-05-25 | 60cb281 | stickies-claude: multi-tag activates multiple skills in one window |
| 2026-05-25 | 19fd74b | stickies-claude: map #health, #rbi, #rhythmic-balanced-interchange |
| 2026-05-25 | 4078bfa | stickies-claude: tempfile launcher to defeat keystroke-bleed corruption |
| 2026-05-25 | 1417d92 | stickies-claude: tag aliases (fe → Free Energy, not Fe) |
| 2026-05-25 | 30eef70 | stickies-claude: single-instance lock kills duplicate-dispatch race |
| 2026-05-25 | 9c84364 | stickies-claude: map #freeenergy and #fe to a local archive |
| 2026-05-25 | 83f6fb3 | applelist: focus the picker dialog + rename PascalCase tile scripts |
| 2026-05-25 | 6acbdfc | applelist: interactive picker on TTY, --list for pipe-friendly dump |
| 2026-05-25 | 83e8c22 | applelist: zero-roundtrip launcher + tab completion for 304 workflows |
| 2026-05-25 | b139f5a | no chordism: sweep "chord" → "keyboard shortcut" across Apple repo |
| 2026-05-25 | b890c07 | stickies-claude: 1.5s poll + FSEvents DispatchSource for sub-second reaction |
| 2026-05-24 | 9a2b6f8 | stickies-claude: schedule timer in .common runloop mode + restore fire log |
| 2026-05-24 | 02ac044 | stickies-claude: host the 3s timer in AppleToolbox.app to clear TCC |
| 2026-05-24 | 70ba0ff | stickies-claude: unalias -a so .bash_profile tr-alias doesn't shadow tr |
| 2026-05-24 | 0dfc5bf | stickies-claude: poll every 3s, throttle 1s — sub-second-class reaction |
| 2026-05-24 | cfa5acd | stickies-claude: 15s polling, log every fire, #ztracker alias |
| 2026-05-24 | dd52d93 | stickies-claude: 30s polling backstop, expanded tagmap, smarter skill title |
| 2026-05-24 | 65aedca | stickies-claude: fix retry-trap + dispatch to iTerm with Terminal fallback |
| 2026-05-24 | e837136 | stickies-claude: notes as a Claude launch surface |
| 2026-05-22 | eb979b0 | mail-select-mailbox: revert smart-mailbox extension, restore VIPs-only version |
| 2026-05-22 | be07da1 | appletoolbox: rebindable launcher chords ⌃⌥⌘C/V/B + bundled WIP |
| 2026-05-22 | 0522878 | appletoolbox: single-bundle install + mail-select AX hardening + Pin Quick Action |
| 2026-05-22 | d9db11d | docksnap: recompile from May-21 source |
| 2026-05-22 | 8a546e3 | asobjc: tier 1.5 promoted to default + cocoa-class-probe + delete-now migration |
| 2026-05-22 | b0f72ed | drops: Finder-toolbar drop-target wrapper apps + sweep |
| 2026-05-22 | e862078 | wiki/lessons: full retrospective from the global-hotkeys + SnapEngine session |
| 2026-05-22 | 56be337 | tag-asobjc: ASObjC-based Finder tag manipulation companion to asobjc.md |
| 2026-05-22 | 20ec22c | repo sweep: ASObjC concept doc + Sal/automation tier refinements + INDEX regen |
| 2026-05-22 | 44adeb2 | appletoolbox: refine global hotkeys + un-tile toggle + Sequoia /show hardening |
| 2026-05-22 | fb3c58a | indexes + build.sh: catch up to new bin/ + commands/ entries |
| 2026-05-22 | 1bbd9df | toolbox-goto: warm-path Distributed Notification trigger for AppleToolbox --live |
| 2026-05-22 | ad1fb8a | snap: Goldilocks convergence loop with window-frame pre-pass |
| 2026-05-22 | a61250d | appletoolbox: global keyboard shortcuts via Carbon + in-process AX SnapEngine |
| 2026-05-21 | 585d007 | snap: extract dock snap into a standalone CLI + /snap slash + wiki concept page |
| 2026-05-21 | 4276b18 | dock snap: generic app-dictionary dispatcher + Safari/Mail/Terminal/Finder support |
| 2026-05-21 | 4065215 | dock snap iterm2: use iTerm's own dictionary (stable window IDs) instead of System Events |
| 2026-05-21 | 22fa4d6 | dock snap: per-screen targeting + dock screens lister |
| 2026-05-21 | 15114f0 | dock snap: 3-pass auto-converge for window-tiling |
| 2026-05-21 | 16c1023 | dock snap: non-uniform row layout + snapshot windows before iterating |
| 2026-05-21 | 713f714 | dock snap <appname>: tile a single app's windows in a grid |
| 2026-05-21 | e448868 | mini-up: move to ~/work/cloudcity/bin/ — it's Cloudcity infrastructure |
| 2026-05-21 | 2af3875 | mini-up: reachability guard before every CloudcityMacMini ssh |
| 2026-05-21 | b23940b | dock snap: auto-grid every running visible app's window on the main screen |
| 2026-05-21 | dd4c5ae | readme + skill: document Finder tag pipeline + Dock manager |
| 2026-05-21 | d083951 | voicebox: default to qwen + Mini onboarding clipboard payload in TODO |
| 2026-05-21 | 7c1668b | show: throwaway fallback for unregistered terms + bring Finder forward |
| 2026-05-21 | 5adf5d2 | exporters: symlink-safe wrappers + bin/install-exporters.sh |
| 2026-05-21 | acfa0c1 | apps-exporter: Clock, Weather, Stocks, Maps in one package |
| 2026-05-21 | 24faa3f | dock: Apple-native Dock manager + /dock slash + AppleToolbox pin action |
| 2026-05-21 | 566a69a | wiki: Finder sidebar Favorites — LSSharedFileList is dead on Sequoia |
| 2026-05-21 | 1d02e1b | wiki: document the Finder Tag → CloudcityMacMini pipeline |
| 2026-05-21 | 6fdbb7d | topbar: 🗂 Smart Folders submenu + retry-failed action in 🏷 Tags |
| 2026-05-21 | 2f34154 | tag-retry-failed: put OCR-failed files back on the Syncthing queue |
| 2026-05-21 | a558b8e | tag-result-handler: read Mac Mini's worker-status/ for real bidirectional state |
| 2026-05-21 | 377cc41 | analysis: apple-report resale-value enrichment design |
| 2026-05-21 | 87f2aad | .claude: strip Sal auto-check from SessionStart hook |
| 2026-05-21 | 4c84c93 | tag-watcher: ocr-processing tier + inbox-recursion guard |
| 2026-05-21 | cb17e59 | shortcuts: builder for "Send to OCR" Finder Quick Action |
| 2026-05-21 | 37d959f | tag-watcher: Finder tag → CloudcityMacMini Syncthing pipeline |
| 2026-05-21 | 78755ab | CLAUDE.md: trim project instructions from 96 → 36 lines |
| 2026-05-21 | d3dc57c | gitignore: skip .claude/settings.local.json (per-machine allowlist) |
| 2026-05-21 | d113157 | misc: exporters, INDEX regens, voicebox onboarding, bookkeeping |
| 2026-05-21 | b1e3682 | commands+bin: new zero-roundtrip slashes (show/smart/voicebox/loom/read/cc) |
| 2026-05-21 | 28bcff5 | topbar: signing, icon, viewport scripts, service registry |
| 2026-05-21 | c7506e1 | workflows: add Triggers + Category headers to every script |
| 2026-05-21 | bec34f3 | topbar + tag: AppleToolbox "🏷 Tags" submenu, tag-trinity, tag-finder-selection |
| 2026-05-21 | 4ef9e9f | homepod: retire stale duplicates, leave a pointer |
| 2026-05-21 | 03dc223 | wiki: Karpathy infrastructure — INDEX, log, lint, thinner skill.md |
| 2026-05-21 | 1d195e9 | bin: tag + tag-smart — Apple-native Finder tag helper and Smart Folder generator |
| 2026-05-21 | ed94bbc | wiki: extract knowledge into Karpathy-style LLM wiki structure |
| 2026-05-20 | c2ddc8a | topbar + scripts: Top/Bottom stack + Thirds window snaps |
| 2026-05-20 | ea6c79d | topbar + scripts: Side-by-Side window snap for the two frontmost apps |
| 2026-05-20 | beae4e8 | topbar: status rows are now clickable — open the relevant app / file / pane |
| 2026-05-20 | fc6678a | topbar: Mail unread reads SQLite directly; hide readers that have no data |
| 2026-05-20 | e9a6d32 | topbar: massive expansion — slashes, system actions, more readers, LaunchAgent |
| 2026-05-20 | c36dc57 | topbar: rebuild Apple-native — Swift NSStatusItem app, no SwiftBar/Homebrew |
| 2026-05-20 | 111c033 | topbar: switch install to symlink into ~/Documents/swiftbar/ |
| 2026-05-20 | 6861938 | topbar: SwiftBar menu-bar toolbox — third zero-roundtrip channel |
| 2026-05-20 | c6d14e2 | apple-report: full Mac capability dump + AI-workload "can I run X" assessment |
| 2026-05-15 | bdaa648 | CLAUDE.md: surface commands/ + zero-roundtrip slash-command pattern |
| 2026-05-15 | 72e6268 | qr-wifi: zero-roundtrip Wi-Fi-join QR codes (thin wrapper on sal-qr) |
| 2026-05-15 | b061313 | commands/: 13 zero-roundtrip slash commands wired to bin/ tools |
| 2026-05-13 | 274372d | skill.md: Mail Smart Mailbox writes are READ-ONLY in practice + Human Only forensics |
| 2026-05-13 | 3d746ee | mail-exporter: smartboxes read-side (list/show/dump/export/diff) + empirical write-impossibility finding |
| 2026-05-12 | 97c2b0a | bin/invert: zero-roundtrip wrapper around bin/invert-images.swift |
| 2026-05-12 | 9de0f86 | bin/invert-images.swift: darkmode screenshots -> lightmode (CoreImage) |
| 2026-05-11 | 600ad45 | README + TODO + CLAUDE: surface 2026-05-11 work + action queue at boot |
| 2026-05-11 | 26b3872 | 3 new exporters: contacts, books, preview |
| 2026-05-11 | 4ccc59b | WWSD canon 45 -> 54: integrate Tier 5 + Tier 6 (Roundtrip Rule) + synthesis + README |
| 2026-05-11 | 30db491 | Senior-audit complete: 10 Sal post-Apple transcripts analyzed (verified verbatim) |
| 2026-05-11 | f1c5be3 | WWDC lessons backfill + TODO status sweep |
| 2026-05-11 | dd850a0 | Senior-audit 4 Sal post-Apple analyses: Triangulation 359, MacVoices 17148, MTC2017, MTC2018 |
| 2026-05-11 | 7461138 | shortcuts-exporter + cross-package xref commands |
| 2026-05-11 | 641334d | Senior-audit MTC2019 control panels: Panel Editor + Luna + AppleScript libraries, candidate WWSD #46-48 |
| 2026-05-11 | 0f1954a | Sal post-Apple corpus: mirror 10 transcripts + 2 senior-audited analyses |
| 2026-05-11 | 1b95fd6 | Vocal Shortcuts + Hey Sal + maintenance: 4-part landing |
| 2026-05-11 | f2a87ae | Senior audit of 11 new WWDC analyses -- no hallucinations, no pollution |
| 2026-05-11 | 6d9b1c9 | finder-exporter: backport .sfl3 NSKeyedArchiver UID resolver |
| 2026-05-11 | 82c5fbf | WWDC: capture 22 Sal-team sessions, verify Sal-on-stage corpus is complete |
| 2026-05-11 | 354b8ef | drop 'chord' jargon: say 'keyboard shortcut' throughout |
| 2026-05-11 | a01cee8 | close deferred items: voice speaks Paketti, PeakedBracket gap, demo script |
| 2026-05-11 | f26f369 | WWSD docs: fix integration-not-proposal framing |
| 2026-05-11 | 0f3dc3d | sal-siri-match: fix "show me hide dock" tie-routing bug |
| 2026-05-11 | 337c733 | Close all four persistence gaps + integrate Tier 3/4 into WWSD canon |
| 2026-05-11 | 70f81cb | docs: define Paketti for readers landing in apple repo |
| 2026-05-11 | f6fae4b | preserve Hey Sal × Paketti session knowledge in apple repo |
| 2026-05-11 | a7ab497 | TODO + skill.md: codify remaining session work + exporter SQLite guideline |
| 2026-05-11 | a6e207b | Vocal Shortcuts: 6 session findings + 3 new tools + WAL-safe SQLite helper |
| 2026-05-11 | 98702f4 | WWDC archive: 11 new Sal sessions (2004-2015) + SAL AT WWDC README |
| 2026-05-11 | d65c812 | drop 'idempotent' from the last two scripts: say 'safe to re-run any time' |
| 2026-05-11 | 27e8002 | batch-import.sh: drop 'idempotent' jargon, say 'safe to re-run' instead |
| 2026-05-11 | 23fa4cd | drop 'idempotent' jargon: say 'safe to re-run' instead |
| 2026-05-11 | 139e87a | README: Vocal Shortcuts findings 5-8 + suggest tool |
| 2026-05-11 | c644fc7 | bootstrap-hey-sal.sh: one-command install of the entire Hey Sal stack |
| 2026-05-11 | c6a3912 | Hey Sal Type: typed sibling Shortcut for menu bar pinning |
| 2026-05-11 | f186908 | Vocal Shortcuts: coverage tool + trigger-stack analysis + skill update |
| 2026-05-11 | 21a73e2 | sal-lessons: 6 WWDC lessons (38 -> 44) + WWDC track integration |
| 2026-05-11 | ce70c49 | JXA dictionary renderer + 31 apps in JavaScript dialect |
| 2026-05-11 | 5393a54 | WWDC archive: 6 Sal sessions (2003x4, 2012, 2014) + WWSD Tier 3 proposal |
| 2026-05-11 | e54a513 | hey-sal: bare-verb fallback + clean error dialog in typed applet |
| 2026-05-11 | e660d04 | applets/hey-sal-type: typed entry to Hey Sal router via Spotlight |
| 2026-05-09 | 2f92c48 | hey-sal speaks Paketti: 337 voice-callable Renoise verbs from KeyBindings.xml |
| 2026-05-08 | ad85757 | hey-sal: add Paketti/Renoise verbs (pattern preset, groovebox, shrink, expand) |
| 2026-05-08 | d6c37ac | Hey Sal v1: WWDC 717 demo replication, working end-to-end on Sequoia M3 Pro |
| 2026-05-08 | 76bcc01 | TODO refresh + md-to-clipboard helper + rich-text-clipboard skill |
| 2026-05-08 | ae2d548 | Store today knowledge: WWSD applied + memory + roadmap mark-done |
| 2026-05-08 | 10ccce3 | Recover Sal Soghoian deliveries (2026-05-06): 6 missing artifacts down to 3 |
| 2026-05-08 | ec99e7c | Ship the seven Hey Sal layers — apple repo unlocks Apple |
| 2026-05-08 | fceaf6e | Hey Sal roadmap — where the 15 exporters take us |
| 2026-05-08 | 8f8e50b | Add iwork-exporter — Pages / Numbers / Keynote (regular + Creator Studio) |
| 2026-05-08 | dc82833 | Add mail-exporter + photos-exporter (Tier 1 batch 2 of 2) |
| 2026-05-08 | 73bb600 | Add calendar-exporter + finder-exporter + music-exporter (Tier 1 batch 1 of 2) |
| 2026-05-08 | 32c8a4b | README: add "Today's Build" recap + "Roadmap to the Full Apple Experience" |
| 2026-05-08 | d48a197 | Research docs for Console / Audio MIDI / Image Capture / Mission Control |
| 2026-05-08 | 82ca71f | Add app-plist-probe + console / audio-midi / image-capture exporters |
| 2026-05-08 | c5fab72 | Add stickies-exporter Phase 1: read-only catalog + markdown vault |
| 2026-05-08 | 666a8da | Rename all bulk-exporter packages: -export → -exporter |
| 2026-05-08 | 10ad568 | Consolidate all bulk-exporter vaults under exported/ (gitignored) |
| 2026-05-08 | 325cd9f | safari-export: add dedupe subcommand (one .md per unique URL) |
| 2026-05-08 | 79a6921 | Propagate safari-export into skill.md and README |
| 2026-05-08 | 78954a4 | safari-export: write per-tab-group .md pages with full tab content |
| 2026-05-08 | fcbdd87 | Add safari-export: read-only catalog + markdown vault for Safari data |
| 2026-05-08 | a602d8f | Propagate tsrp + bulk-exporter discoveries into skill.md and README |
| 2026-05-08 | f5a6fc9 | voice-memos-export: detect + extract Apple transcripts; --audio metadata |
| 2026-05-07 | ecadce8 | Add voice-memos-export Phase 1: read-only catalog + vault export |
| 2026-05-07 | 6c0c32e | Vocal Shortcuts: storage format reverse-engineered + reader + skill doc |
| 2026-05-07 | 3dc9b08 | Fix false architecture claim: this Mac is Apple M3 Pro, not Intel |
| 2026-05-07 | 0f429e4 | Add Vocal Shortcuts storage probe + getting-started guide |
| 2026-05-07 | 6a1ab5d | Sal's Siri v3: multi-turn history is read into the prompt |
| 2026-05-07 | 4b8b03b | Sal's Siri v2: stateful conversation + slot-fill template substitution |
| 2026-05-07 | dba9d21 | Add reminders-export: Apple Reminders → Markdown vault |
| 2026-05-07 | 4a46639 | Phase 6: rebuild Sal's Siri-on-Mac via Apple Intelligence Foundation Models |
| 2026-05-07 | cef9aa6 | Sequoia removed Enhanced Dictation Commands runtime: deprecate Path A, add Phase 3.5 Vocal Shortcuts importer, theorize Siri-on-Mac |
| 2026-05-07 | eb52b61 | Replicate WWDC 2016 session 717: phases 1-5 executed end-to-end |
| 2026-05-07 | 4911df5 | Recover WWDC 2016 session 717: full transcript + 3 deep analyses + replication plan |
| 2026-05-07 | b42b1a4 | Roll up Sal interview corpus findings into README, sal-soghoian.md, skill.md |
| 2026-05-07 | e4a1e4d | Ingest 4 more Sal transcripts + Pass 2 deep analysis (50 stories now) |
| 2026-05-07 | 52267c1 | Ingest Sal TWiT 2018 + MTC2019 transcripts and add deep WWSD analysis |
| 2026-05-07 | 5791cd6 | Add Steve Jobs stories from WIRED 2018 + Sal empowerment quote in README |
| 2026-05-07 | b546989 | Refactor podcast script onto unified whisp queue + mandatory Discord summary |
| 2026-05-07 | f77c0e0 | Build Sal Soghoian transcription pipeline + repo CLAUDE.md + TODO |
| 2026-05-07 | 708a426 | Expand Sal biography with WIRED 2018 origin stories + sources archive layout |
| 2026-05-07 | 8821bfa | Add imessage-export and notes-export automation tools |
| 2026-05-07 | e480a54 | Archive Wired Soghoian article + Sal Apple Podcasts episode index |
| 2026-05-07 | 51675c8 | Extend Sal discovery script: HN, Apple Podcasts, Reddit, DDG site search |
| 2026-05-06 | 093fdb6 | Add Sal YouTube interview transcription queue for whisp |
| 2026-05-06 | 84e5116 | Add Sal interview discovery script + first-pass results |
| 2026-05-06 | 260fa39 | Correct Sal Soghoian reply date to 2026-04-03 (was misattributed) |
| 2026-05-06 | cdac2b9 | Add Apple ID Credential Recovery and Re-Auth procedure to skill |
| 2026-05-06 | ae60356 | Add macOS Installer Download and Bootable USB procedure to skill |
| 2026-05-06 | 17821d2 | Add Thought Multiplier: BBS ingest surface for [redacted] |
| 2026-05-06 | 0b77d5e | Add WhiteboardKnob Loupedeck browser scripts |
| 2026-05-06 | fc05535 | Recover Sal Soghoian deliveries (2026-05-06): 6 missing artifacts down to 3 |
| 2026-04-02 | 2ca711a | Codify Sal Hand-Crafted Conformance as WWSD Principle 11 |
| 2026-04-02 | 84b9696 | Humanize all 296 Siri phrases following Sal Soghoian's dictation command patterns |
| 2026-04-02 | 39bdc04 | Clarify preservation mission in README |
| 2026-04-02 | f022ea8 | Document remaining Sal archive gaps |
| 2026-04-02 | 7bb0424 | Recover remaining Sal video corpus |
| 2026-04-02 | 7e5a5db | Teach Apple skill to refresh Sal archive status |
| 2026-04-01 | 9a47871 | Recover Sal download bundles and index targets |
| 2026-04-01 | 1d9fe94 | Extract inline Sal AppleScript examples |
| 2026-04-01 | 9bd193a | Expand Sal curriculum lesson coverage |
| 2026-04-01 | d62f362 | Add advanced Sal lesson modules |
| 2026-04-01 | 440fa4b | Add first Sal lesson modules |
| 2026-04-01 | fb2219d | Add Sal lesson index for curriculum mapping |
| 2026-04-01 | b1339a8 | Add Sal research notes and documentation updates |
| 2026-04-01 | d03f8db | Archive Sal automation sites and add curriculum taxonomy |
| 2026-03-26 | b61146d | Add slideshow tool: folder → fullscreen presentation on any screen |
| 2026-03-13 | a172f72 | MosaicKnob: screen-aware filtering, add iCloud URL shortcuts |
| 2026-03-11 | 639c077 | Document props TUI and prbuild in skill.md, README, and memory |
| 2026-03-11 | 51a24c6 | Update skill.md with MosaicKnob design lessons and correct architecture |
| 2026-03-11 | 9802633 | MosaicKnob: stop minimizing windows when reducing tile count |
| 2026-03-11 | 0ef0fbd | Fix MosaicKnob grid: 2 windows = side-by-side, not stacked |
| 2026-03-11 | a0f0804 | Simplify MosaicKnob: always tile on main screen, remove multi-monitor detection |
| 2026-03-11 | 55acb23 | Add Live Automation via Claude Code: natural language macOS control |
| 2026-03-11 | 19d825a | Add 'c' key: resolve PR conflicts with Claude Code |
| 2026-03-11 | 5812c63 | Handle rebase conflicts gracefully with clear message and open-in-browser |
| 2026-03-11 | 2ec7529 | Fix Safari tiling: resize all windows first, then position |
| 2026-03-11 | 07243b0 | Add esc to quit from list view |
| 2026-03-11 | 2fffeab | Skip incomplete grids: only show counts that fill the screen |
| 2026-03-11 | 6de8b8e | Fix portrait screen: AppleScript word operator eats negative signs |
| 2026-03-11 | 05f53c0 | Fix action view: proper TUI with in-place CI status updates |
| 2026-03-11 | ae73e39 | Convert props to curses TUI with rich info panel and direct rebase |
| 2026-03-11 | ce26097 | Detect which screen the frontmost window is on, tile there |
| 2026-03-11 | 38f8a1c | Fix mosaic grid: prefer fewer rows, fill columns first |
| 2026-03-11 | 1491e58 | Skip dock animation: move windows off-screen instead of minimizing |
| 2026-03-11 | 00b3e09 | Fix MosaicKnob: unminimize windows when turning knob right |
| 2026-03-11 | 62b4c48 | Add unified MosaicKnob.scpt with more/less subroutines for Loupedeck |
| 2026-03-11 | 50ac1eb | Replace MosaicKnob with mosaic-more/less shell scripts for Loupedeck knobs |
| 2026-03-11 | 345d5ae | Add window mosaic scripts: one-button tile + Loupedeck knob density control |
| 2026-03-11 | 78f2aee | Add Hide All Others script for Loupedeck focus button |
| 2026-03-11 | b0f43e0 | Add props (PR operations) and prbuild (Mac DMG trigger) tools |
| 2026-03-11 | a4af91a | Add GitHub Watcher: PR & CI awareness bot + strategic PR viewer + dashboard |
| 2026-03-10 | 8fabc0d | Add FUNDING.yml with GitHub Sponsors, Patreon, Ko-fi, Buy Me a Coffee |
| 2026-03-09 | 8e6ebc0 | Add Apple Driver's License: 9-layer knowledge framework + 37-question interactive quiz |
| 2026-03-09 | 68fb8cf | Add 4 dark app painpoints: Disk Utility, Activity Monitor, Time Machine, Screenshot |
| 2026-03-09 | 4785f49 | Fix 3 broken example script paths in README and loupedeck-guide |
| 2026-03-08 | a403819 | Repo cleanup: fix stale counts, add Loupedeck guide, link orphaned docs |
| 2026-03-08 | 86da45a | Fix painpoints table, xpc-atlas YAML, siri-phrases for all 33 apps, catalog count |
| 2026-03-08 | 138de6b | Fix last stale 209 references in data-type-chaining and wwsd-decision-tree |
| 2026-03-08 | 1d8d227 | Fix stale numbers, add APP_ICONS for 17 new apps, remove hardcoded paths |
| 2026-03-08 | 2229081 | Add 79 workflows for 15 new apps: TV, Keynote, Pages, Numbers, Automator, and 10 more |
| 2026-03-08 | d991f22 | Fix number mismatches, add --help to app-probe, resolve TODOs, regenerate catalog |
| 2026-03-08 | 3614812 | Add WWSD decision tree, data type chaining, Tier 8-10 workflows, Siri phrases, compatibility notes |
| 2026-03-08 | 1cc3f68 | Add full 10-tier automation atlas: Accessibility API, Notifications, IOKit |
| 2026-03-08 | 0f283a1 | Add PLATFORM-001: macOS automation splintered across five incompatible layers |
| 2026-03-08 | f11f4d3 | Add XPC automation atlas: 2,359 services mapped across 18 app categories |
| 2026-03-08 | 120f294 | Add batch import, auto-gen, native AppleScript shortcuts, demo slideshow |
| 2026-03-07 | 95ace70 | Major hardening: TCC fix, LICENSE, painpoints, catalog sync, Siri phrases |
| 2026-03-07 | 656e115 | Fix TCC permissions: all workflow apps share one bundle ID |
| 2026-03-07 | 4bf7518 | Add HomePod icon to shortcut-gen.py |
| 2026-03-06 | 2de4f9b | Update README: 186 workflows, pipeline docs, HomePod climate sensor |
| 2026-03-06 | 93cc075 | Add HomePod climate sensor: Shortcuts CLI to bash to JSONL to dashboard |
| 2026-03-06 | f0d59ee | Deepen all 15 apps + add teaching comments to every script |
| 2026-03-06 | 3ac5cd0 | Deepen Music app coverage: 15 → 37 workflows (22 new recipes) |
| 2026-03-06 | f388391 | Add shortcut-gen.py: programmatic Shortcuts creation from AppleScripts |
| 2026-03-06 | f74b198 | Add Spotlight indexing monitor: status script, progress tracking, CLI tools |
| 2026-03-06 | 4b70207 | Document Spotlight troubleshooting: APFS volume bug, osacompile gotcha, diagnostics |
| 2026-03-06 | ce0de7a | Fix spotlight-export: use /Applications/ not ~/Applications/ |
| 2026-03-06 | cfcd736 | Fix 3 compile errors: escape quotes in Dock scripts, reserved word in calendar |
| 2026-03-06 | 6d139c1 | Add Spotlight integration: the final Sal mile |
| 2026-03-06 | c1f169d | Add bash_profile Finder/Dock/system recipes: 97 -> 109 workflows |
| 2026-03-06 | 613478e | Add workflow-gen.py and 97 workflow scripts across 15 apps |
| 2026-03-06 | 0906b1c | Expand gap analysis: 20 zero-surface apps, the actual bridge, AND future |
| 2026-03-06 | 6526529 | Add Automator vs Shortcuts gap analysis — the bridge that doesn't exist |
| 2026-03-06 | 89e387f | Add cross-analysis document, rebalance skill.md away from Loupedeck |
| 2026-03-06 | 36cdcaf | Add painpoints section, Sal Wikipedia bio, launcher scripts in README |
| 2026-03-05 | e8d9c22 | Restore removed sections: bash profile, public/private split, whiteboards |
| 2026-03-05 | ac3e916 | Skill v3.0 — complete rewrite with all session knowledge |
| 2026-03-05 | 618e718 | Rewrite README as Automation Atlas — 66 apps tiered by automation depth |
| 2026-03-05 | 34563a7 | Add app-probe Sal pitch — the tool he would have killed for in 1997 |
| 2026-03-05 | bb50ca7 | Add @macautomation Twitter/X as primary source, mark for scraping |
| 2026-03-05 | aa63da8 | Replace partial Sal FAQ with complete macosxautomation.com source |
| 2026-03-05 | db9c0e5 | Add ask — Voice Dictation + Claude, second Sal-like tool |
| 2026-03-05 | 1baf570 | Add Sal on Shortcuts: AND not OR — full timeline with quotes |
| 2026-03-05 | 3b54403 | Add Bill Cheeseman and Jon Gotow reactions to Sal departure |
| 2026-03-05 | f415aa6 | Add Jason Snell and Gabe Weatherhead reactions to Sal's departure |
| 2026-03-05 | bbfe6d4 | Add full Sal Soghoian departure statement |
| 2026-03-05 | f9aabf4 | Redefine repo mission: Product Manager of Automation Technologies |
| 2026-03-05 | c310f11 | Add full Sal Soghoian departure Q&A quote |
| 2026-03-05 | 6640e17 | Add sal-like.md — catalog of Sal Soghoian-style automation tools |
| 2026-03-05 | 7ec4857 | Add ghc — GitHub Clone + Claude workflow tool |
| 2026-03-05 | 5fafc3d | Make skill.md public — Apple automation skill definition |
| 2026-03-05 | fe1b31c | Add 13-layer app automation probe — 66 apps, 378 layer hits |
| 2026-03-05 | 5dc4c9c | Add icon extractor for Loupedeck Live button icons |
| 2026-03-05 | 8e7e169 | Add video script with marketing psychology annotations |
| 2026-03-05 | 2ebb1ac | Add "How It Was Built" — full conversation replay showing repo creation |
| 2026-03-05 | 52fadc4 | Add 31 scripting dictionaries, 64 app launchers, Sal Soghoian knowledge, and automation atlas |
| 2026-03-05 | c6023ed | Initial commit: AppleScript automation arsenal |