@@ -11,17 +11,67 @@ behaviours between releases.
1111
1212## [ Unreleased]
1313
14+ ## [ 1.1.0] — 2026-05-17
15+
16+ The Wi-Fi panel grows two hands. You can now associate an SSID
17+ directly from its detail modal (` j ` ), and on first save the
18+ credential goes into your ** login keychain behind a Touch ID
19+ ACL** — every subsequent join is a single biometric tap rather
20+ than an admin-password sheet. The TUI also picks up a branded
21+ title bar, plus a stack of helper polish and display fixes.
22+
1423### Added
1524- ** Join a Wi-Fi network from its detail page (` j ` ).** New binding
16- on the Wi-Fi detail modal opens a confirmation prompt — including
17- a "not hitless, ~ 2-5 s gap" warning — and on confirm associates
18- via a new ` diting-tianer associate ` helper subcommand. Networks
19- with a saved Keychain password join silently; new networks get
20- a native macOS password sheet rendered by the helper bundle
21- (with a "Remember this network" checkbox that writes back to
22- the System Keychain). Enterprise / 802.1X is refused with a
23- hint to use the system Wi-Fi menu once. ` c ` (force re-roam) is
24- unchanged. See ` openspec/changes/wifi-connect-from-detail/ ` .
25+ on the Wi-Fi detail modal opens a confirmation prompt —
26+ including a "not hitless, ~ 2-5 s gap" warning — and on confirm
27+ associates via a new ` diting-tianer associate ` helper
28+ subcommand. Networks with a saved password join after a Touch
29+ ID tap; new networks get a native macOS password sheet rendered
30+ by the helper bundle (with a "Remember this network" checkbox).
31+ Enterprise / 802.1X is refused with a hint to use the system
32+ Wi-Fi menu once. ` c ` (force re-roam) is unchanged. See
33+ ` openspec/changes/archive/2026-05-16-wifi-connect-from-detail/ ` .
34+ - ** Wi-Fi passwords live in the login keychain behind Touch ID.**
35+ The helper persists its own copy of the password under the
36+ ` diting Wi-Fi ` service namespace with a
37+ ` SecAccessControlCreateWithFlags(.userPresence, …) ` ACL.
38+ macOS unlocks it with Touch ID on capable hardware and falls
39+ back to the ** login** password (not the admin password) when
40+ biometric is unavailable. Previous PRs tried to read Apple's
41+ System-Keychain AirPort items directly — that path requires
42+ an admin sheet on every call, which is unusable. See
43+ ` openspec/changes/archive/2026-05-17-wifi-keychain-touch-id/ ` .
44+ - ** Branded title bar.** The top status line is now a flat band
45+ carrying the radar mark + ` diting v<version> ` — the same
46+ pixel-art beast you see in ` assets/logo-mark.svg ` .
47+
48+ ### Fixed
49+ - ** Router unreachability copy.** When the Router probe gets no
50+ ICMP reply but the WAN probe still works, the diagnostics line
51+ reads ` Router (no ICMP reply) ` / ` Router (ICMP 无响应) ` instead
52+ of the misleading "unreachable" — many home routers silently
53+ drop ICMP echo but still forward traffic.
54+ - ** Tuya BLE alias + "samples over <1s".** Tuya devices now
55+ resolve via the vendor alias map (no more raw IEEE registrant
56+ string), and the BLE detail's RSSI-history footer reads
57+ ` samples over <1s ` instead of ` samples over 0s ` when the
58+ history spans less than a second.
59+ - ** ` diting-tianer associate ` polish.** ` -g -n ` flags on the
60+ ` open ` outer→inner spawn so the helper doesn't focus-steal
61+ during a join; early-exit when already on the target SSID;
62+ multiple CWKeychain-signature fallbacks; Keychain READ/WRITE
63+ goes through ` Security.framework ` ` SecItem* ` rather than the
64+ private ` CWKeychain ` selectors.
65+
66+ ### Migration note
67+ The Touch ID change relocates saved Wi-Fi passwords from Apple's
68+ System Keychain to diting's own login-keychain namespace. On
69+ first join after upgrade, every previously-saved SSID will fall
70+ back to the password sheet once — confirm the password (or paste
71+ from the system Wi-Fi prefs) and tick "Remember" again. The
72+ helper bundle's cdhash also moves with the
73+ ` feat(macos-helper)! ` change, so first launch re-grants Location
74+ + Bluetooth + Notifications once.
2575
2676## [ 1.0.12] — 2026-05-16
2777
0 commit comments