Patch release: better upgrade experience, configurable temperature units, spinner tips sync, FAQ fixes.
This is a patch release addressing community feedback from Discussion #754 about upgrade difficulties and missing preferences.
The main README now has separate Fresh Install and Upgrading from a Previous Version sections with explicit steps:
- Back up before upgrading
- The installer auto-detects existing installations
settings.jsonmerges intelligently (only installer-managed fields are updated)USER/files are never touched- Post-upgrade checklist included
New preferences section in settings.json:
"preferences": {
"temperatureUnit": "fahrenheit"
}- Installer asks during the identity step — choose Fahrenheit or Celsius
- Statusline honors the setting — reads from
settings.json, passes to Open-Meteo API, displays the correct °F or °C symbol - Existing users can change it manually in
settings.jsonat any time - Default:
fahrenheit(configurable during install)
Community-reported fixes from PRs #762, #780, and #806:
- Hardcoded timezone removed — now reads
principal.timezonefromsettings.jsoninstead of hardcodedAmerica/Los_Angeles - Broken context fallback removed — the
/clearcommand produced stale context percentages from a manual token calculation - Startup estimate removed — the self-calibrating startup estimate cached previous session data, inflating fresh session context %
- f-string syntax fix — nested escaped double quotes inside Python f-strings caused parse errors on some shells
Full audit and update of all 202 spinner tips in settings.json against the current system state:
- 21 stale tips fixed — wrong counts (15→14 agents, 20→21 hooks, 77→21 skill categories), removed effort tiers (Instant/Fast no longer exist), non-existent agents (Intern), outdated ISC scales, wrong phase thresholds
- 14 new tips added — Components system, LoadContext.hook.ts, hierarchical skill architecture, PRD format (8 frontmatter fields, 4 body sections), voice announcements, context compaction, SkillGuard/AgentExecutionGuard hooks, pack elimination
- Algorithm version bumped — v3.5.0 → v3.6.0 throughout
- Zero sensitive data — all template variables preserved (
{DAIDENTITY.NAME},{PRINCIPAL.NAME}, etc.)
- Removed stale Python reference — PAI v4.0 is TypeScript and Bash, not Python
- Improved "What if I break something?" answer — Now explains that USER/ is preserved, settings merge not overwrite, and backup strategy
| File | Change |
|---|---|
settings.json |
Added preferences.temperatureUnit, synced 202 spinner tips, Algorithm v3.6.0 |
statusline-command.sh |
Temp unit pref, dynamic timezone, context/startup/f-string fixes |
PAI-Install/engine/types.ts |
Added temperatureUnit to collected data and PAIConfig |
PAI-Install/engine/config-gen.ts |
Outputs preferences section |
PAI-Install/engine/actions.ts |
Temp unit prompt in identity step, preserves preferences on upgrade |
git clone https://github.com/danielmiessler/Personal_AI_Infrastructure.git
cd Personal_AI_Infrastructure/Releases/v4.0.1
cp -r .claude ~/ && cd ~/.claude && bash install.sh# 1. Back up
cp -r ~/.claude ~/.claude-backup-$(date +%Y%m%d)
# 2. Clone and copy
git clone https://github.com/danielmiessler/Personal_AI_Infrastructure.git
cd Personal_AI_Infrastructure/Releases/v4.0.1
cp -r .claude ~/
# 3. Run the installer
cd ~/.claude && bash install.sh
# 4. Rebuild CLAUDE.md
bun ~/.claude/PAI/Tools/BuildCLAUDE.tsIf you just want the temperature unit fix without re-running the installer:
- Add to your
~/.claude/settings.json:
"preferences": {
"temperatureUnit": "celsius"
}-
Copy the updated
statusline-command.shfrom this release over your existing one. -
Delete your weather cache to force a refresh:
rm -f ~/.claude/MEMORY/STATE/weather-cache.jsonSee the main README for the general upgrade procedure. The installer auto-detects existing installations regardless of which version you're upgrading from.