rdmbair15m5-changelog-20260922-0245-keychain-search-list-dev-update-v2.02-fleet-normalization
rdmbair15m5-changelog-20260922-0245-keychain-search-list-dev-update-v2.02-fleet-normalization
Guaranteed preservation of login.keychain-db in user search list, upgraded dev_update to v2.02, hardened fleet_signing_rollout to v1.1, normalized search list order across all 5 spokes, and resolved incident ISSUE-20260921-24.
Scope
- Hosts:
rdmsm4x,rdmbair15m5,rdmbair13m5,jdmbair13m5,rdmpw3265m,rdmpw3275m - Repositories:
scripts(git.ecs0.net:git/root/scripts.git/github.com/richhdoty/rdmsm4x-dev-scripts.git)fleet(git.ecs0.net:git/root/fleet.git/github.com/richhdoty/rdmsm4x-dev-fleet.git)issues(git.ecs0.net:git/dev/issues.git/github.com/richhdoty/rdmsm4x-dev-issues.git)dev-root-rdmbair15m5(git.ecs0.net:git/fleet/dev-root-rdmbair15m5.git/github.com/richhdoty/rdmbair15m5-dev-root-docs.git)
Exact Files Touched
scripts/dev_update_v2.02.zsh(new version, mode 755)scripts/dev_update.zsh(symlink updated ->dev_update_v2.02.zsh)fleet/ops/keysync/fleet_signing_rollout.zsh(upgraded to v1.1 with safe array ordering and normalize command)issues/resolved/ISSUE-20260921-24-rdmsm4x-keychain-search-list-lost-login-.md(resolved ticket)SYNC-STATUS.md(authoritative decision and parity log)LLM/Claude/changelogs/rdmbair15m5-changelog-20260922-0245-keychain-search-list-dev-update-v2.02-fleet-normalization.md(file archive)
Root Cause & Mechanism
- During an automated maintenance or doctor pass running over SSH,
capturing
security list-keychains -d user 2>/dev/nullindev_update_v2.01.zshline 5627 failed or returned empty in a subshell/non-interactive context. - When
curwas empty,security list-keychains -d user -s ${(f)cur} "$kc"executedsecurity list-keychains -d user -s "$kc", wiping out all existing keychains and leaving onlyfleet-signing.keychain-db. - Consequently,
login.keychain-db(which exclusively stores Developer ID Application private keys onrdmsm4x) was dropped from user keychain lookup, breaking production Developer ID signing and notarization preflights. - A secondary defect in
fleet_signing_rollout.zshline 45 positioned"$KC"first in the search list command, placingfleet-signing.keychain-dbahead oflogin.keychain-dbacross all 5 spokes.
Remediation Applied
dev_update_v2.02.zsh:- Replaced fragile read-set logic with strict rc checking and whitespace validation.
- Enforced that
login.keychain-dbis guaranteed present and FIRST in the search list. - Appended
fleet-signing.keychain-dbafterlogin.keychain-dbonly if absent. - Incremented version to
2.02with updated header changelog; verified embedded payload integrity (--verify-embeddedrc=0). - Executed full
--dry-runonrdmsm4x: exit 10 (informational mas upgrade advisory only), zero errors, zero false mutations.
fleet_signing_rollout.zshv1.1:- Rewrote
install_hostto construct search list safely withlogin.keychain-dbfirst andfleet-signing.keychain-dblast. - Added
normalize [host ...]command to repair search list ordering without rebuilding keychains. - Executed
normalizeacross all 5 spokes (rdmbair15m5,rdmbair13m5,jdmbair13m5,rdmpw3265m,rdmpw3275m), ensuring[login.keychain-db, fleet-signing.keychain-db]order fleet-wide.
- Rewrote
- Fleet Deployment:
- Deployed
dev_update_v2.02.zshand updated~/dev/scripts/dev_update.zshsymlink on all 6 hosts (rdmsm4x,rdmbair15m5,rdmbair13m5,jdmbair13m5,rdmpw3265m,rdmpw3275m). Verified--versionoutput on each host.
- Deployed
- Ticket Resolution:
- Claimed and resolved
ISSUE-20260921-24inissuesstore viaticket resolveonrdmsm4x. - Broadcasted resolution announcement via
agent_msg.zsh broadcastand synced across all 6 hosts.
- Claimed and resolved
Verification Evidence
dev_update_v2.02.zsh --verify-embedded: rc=0 (payload sha256 f87802488dca verified).dev_update_v2.02.zsh --versionon all 6 hosts:dev_update v2.02 (self-contained: footlights 1.1.0 + dev_update 2.15, payload sha f87802488dca).fleet_signing_rollout.zsh normalize: confirmedlogin.keychain-dbfirst,fleet-signing.keychain-dbsecond across all 5 spokes.fleet_signing_rollout.zsh verify:verify: hosts=5 failed=0(all 5 spokes reportunlock=0 sign=0 team=ZU2882L4HT).rdmsm4xsigning verification: codesign probe withfleet_sign_unlockpassed; Developer ID Application identity1C07FCD80C36EAD5D9E3B73F7ACCCA5368DC73FBvalid and active in user search list.- Git commits pushed to canonical fleet and private GitHub remotes:
scripts:817bda4fleet:4a719a7issues:156f416dev-root-rdmbair15m5:50cf0c7
Outstanding Owner Actions
- None. All changes verified, committed, pushed, and active.