aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org160
1 files changed, 98 insertions, 62 deletions
diff --git a/todo.org b/todo.org
index 6202de7..eb8d353 100644
--- a/todo.org
+++ b/todo.org
@@ -46,69 +46,42 @@ below):
input-side-spec.org (DRAFT, four decisions open).
* Archsetup Open Work
-** DONE [#B] Ship the Framework 13 AMD internal-mic workaround in the installer :bug:velox:audio:solo:
-CLOSED: [2026-10-06 Tue]
-:PROPERTIES:
-:CREATED: [2026-10-06 Tue]
-:LAST_REVIEWED: 2026-10-06
-:END:
-Shipped 2026-10-06 as archsetup commit =5189b7c=. =configure_framework_amd_internal_mic= runs in
-=desktop_environment= right after the pipewire/wireplumber package loop,
-gated by =is_framework_13_ryzen_ai_300= (DMI: vendor Framework, product_name
-carrying "Laptop 13" and "AMD Ryzen AI 300"; ratio's "AI Max 300", the Intel
-13, the 7040 13, and the 16 all miss). It installs
-=configs/wireplumber/50-disable-ucm.conf= with =install -Dm644=. The shipped
-file matches the PDM card by name pattern (=~alsa_card.pci-.*-platform-acp-pdm-mach=)
-rather than the one PCI path home's hand-written version pinned, so a
-renumbered bus on the same board is still caught; the live velox file was
-replaced with the shipped one and wireplumber restarted, with the card set and
-default source unchanged. The audio failure taxonomy gained the bug's row and
-a Cluster 5 note so the doctor's use-ucm remedy treats the drop-in as the fix,
-not an offending config. No wireplumber restart from the installer
-(no user session bus during install), so it applies at the next wireplumber
-start. Fixture test: =tests/installer-steps/test_configure_framework_amd_internal_mic.py=,
-17 cases across the gate and the step; full =make test-unit= green, 57
-suites. Verified live: the gate fires on velox's real DMI, the step's output
-matches the live file byte for byte, the default source is the analog-stereo
-one, and a 4 s capture with the source briefly unmuted settled at rms about
-0.05 (room noise at +30 dB capture gain) after a 0.6 s unmute transient, not
-the 0.99999 rail. The source was muted at the PipeWire level before and
-after; that state was restored.
-From home's 2026-10-06 handoff, verified live the same morning. On velox
-(Framework 13, Ryzen AI 9 HX 370, linux-lts 6.18.55, BIOS 04.02) the internal
-microphone was dead in every app. Root cause is a known upstream kernel bug in
-the AMD ACP PDM digital-mic path on the Ryzen AI 300 Framework 13: the DMIC
-card (=acp-pdm-mach=, =hw:acppdmmach=) emits a constant full-scale rail (rms
-0.99999) instead of audio, and with UCM on PipeWire exposes only that broken
-DMIC as the internal mic (Framework community threads 81866 and 75748).
-Workaround home applied by hand, now live on velox:
-=/etc/wireplumber/wireplumber.conf.d/50-disable-ucm.conf= sets
-=monitor.alsa.properties { alsa.use-ucm = false }= and a =monitor.alsa.rules=
-entry with =device.disabled = true= for
-=alsa_card.pci-0000_c1_00.5-platform-acp-pdm-mach=, then =systemctl --user
-restart wireplumber=. The ALC285 falls back to its analog-stereo profile whose
-Internal Microphone pin (0x12) carries real audio; the default source is
-=alsa_input.pci-0000_c1_00.6.analog-stereo=, port =analog-input-internal-mic=,
-with the source volume lowered because the analog path stacks +30 dB capture
-on +30 dB boost. Revert: delete the file and restart wireplumber.
-
-What the installer needs: write that drop-in on this hardware only (gate on
-the =acp-pdm-mach= card or the Framework 13 AMD board id, not on the
-hostname), beside the existing pipewire/wireplumber package install, with a
-fixture test in the installer-steps suite. The live file on velox is the
-reference content. The audio failure taxonomy already lists =use-ucm= both
-ways as an audio-doctor AUTO remedy
-([[file:docs/design/2026-07-10-audio-failure-taxonomy.org][docs/design/2026-07-10-audio-failure-taxonomy.org]]), so the
-doctor's remedy and this drop-in should agree. The standing re-check after
-each kernel update (remove the drop-in once the upstream fix lands, UCM back
-on) lives in velox's machine notes, the KB node "velox's internal mic needs
-UCM off and the ACP PDM card disabled until the AMD digital-mic kernel bug is
-fixed", linked from the velox hardware node's neighbourhood, not in this
-one-shot task.
-
-Verify: =pactl get-default-source= names the analog-stereo source, and a
-short =arecord= of the internal mic has an rms well below 0.99.
+** TODO [#C] Settings-panel brightness drum skips digits from x5 levels :bug:dotfiles:solo:
+:PROPERTIES:
+:CREATED: [2026-10-07 Wed]
+:LAST_REVIEWED: 2026-10-07
+:END:
+Found 2026-10-06 while investigating Craig's report that the desktop-settings
+panel will not take 60 percent. Confirmed defect in
+=~/.dotfiles/settings/src/settings/=: =bench.drum_of= uses Python's =round()=,
+which rounds halves to even, and =gui._commit_drums= applies a drag only when
+the dragged digit differs from =drum_of(live percent)=. At a live level of 55
+or 65 percent (the XF86 keys step by 10 from the 5 percent floor, so x5 levels
+are normal) the drum already reads 6, a drag to 6 is a no-op, and 60 is
+unreachable without passing through 5 or 7 first. Same at 35 and 45, which
+both read 4. The backend is fine: =brightness.set_percent(60)= read back 60
+live on velox, the sysfs file is the udev rule's root:video 664, and the keys
+work.
+
+Grading: Minor severity (a specific level can't be hit from the panel; a
+detour through the next digit works) x some users sometimes (only from an x5
+level) = P3 = [#C].
+
+Fix: in =_commit_drums=, compare =bench.percent_of(screen)= against the live
+percent rather than digit against digit (or round half up in =drum_of=; the
+comparison fix is the smaller change and keeps the display honest). Unit
+tests live in =~/.dotfiles/tests/settings/= (=test_presenters.py= has the
+drum-rounding cases). Per the archsetup-owns-dotfiles rule, make the change
+from here, run the settings tests, commit and push dotfiles, and drop a note
+in =~/.dotfiles/inbox/=.
+
+Not the same thing: the screen reading 10 percent all afternoon on 2026-10-06
+was hypridle's 60 s dim stage (=brightnessctl -s set 10%= with =-r= on resume;
+the saved pre-dim level in =/run/user/1000/brightnessctl/= was 100 percent).
+*** VERIFY What does the panel do on a drag to 6: no movement, lands on 6 with no screen change, or snaps back?
+If it lands on 6 with no change, the rounding defect above is the cause and
+the fix can go in as written.
** TODO [#B] calendar-sync fails headless after every boot until authinfo is unlocked :bug:dotfiles:gpg:
:PROPERTIES:
@@ -5846,3 +5819,66 @@ has passed. Where each of the seven items went:
Next Session Focus.
7. The orchestrator sequence-pin gap → filed 2026-09-17 as [#C] Orchestrator
sequence pin misses an added step.
+** DONE [#B] Ship the Framework 13 AMD internal-mic workaround in the installer :bug:velox:audio:solo:
+CLOSED: [2026-10-06 Tue]
+:PROPERTIES:
+:CREATED: [2026-10-06 Tue]
+:LAST_REVIEWED: 2026-10-06
+:END:
+Shipped 2026-10-06 as archsetup commit =5189b7c=. =configure_framework_amd_internal_mic= runs in
+=desktop_environment= right after the pipewire/wireplumber package loop,
+gated by =is_framework_13_ryzen_ai_300= (DMI: vendor Framework, product_name
+carrying "Laptop 13" and "AMD Ryzen AI 300"; ratio's "AI Max 300", the Intel
+13, the 7040 13, and the 16 all miss). It installs
+=configs/wireplumber/50-disable-ucm.conf= with =install -Dm644=. The shipped
+file matches the PDM card by name pattern (=~alsa_card.pci-.*-platform-acp-pdm-mach=)
+rather than the one PCI path home's hand-written version pinned, so a
+renumbered bus on the same board is still caught; the live velox file was
+replaced with the shipped one and wireplumber restarted, with the card set and
+default source unchanged. The audio failure taxonomy gained the bug's row and
+a Cluster 5 note so the doctor's use-ucm remedy treats the drop-in as the fix,
+not an offending config. No wireplumber restart from the installer
+(no user session bus during install), so it applies at the next wireplumber
+start. Fixture test: =tests/installer-steps/test_configure_framework_amd_internal_mic.py=,
+17 cases across the gate and the step; full =make test-unit= green, 57
+suites. Verified live: the gate fires on velox's real DMI, the step's output
+matches the live file byte for byte, the default source is the analog-stereo
+one, and a 4 s capture with the source briefly unmuted settled at rms about
+0.05 (room noise at +30 dB capture gain) after a 0.6 s unmute transient, not
+the 0.99999 rail. The source was muted at the PipeWire level before and
+after; that state was restored.
+From home's 2026-10-06 handoff, verified live the same morning. On velox
+(Framework 13, Ryzen AI 9 HX 370, linux-lts 6.18.55, BIOS 04.02) the internal
+microphone was dead in every app. Root cause is a known upstream kernel bug in
+the AMD ACP PDM digital-mic path on the Ryzen AI 300 Framework 13: the DMIC
+card (=acp-pdm-mach=, =hw:acppdmmach=) emits a constant full-scale rail (rms
+0.99999) instead of audio, and with UCM on PipeWire exposes only that broken
+DMIC as the internal mic (Framework community threads 81866 and 75748).
+
+Workaround home applied by hand, now live on velox:
+=/etc/wireplumber/wireplumber.conf.d/50-disable-ucm.conf= sets
+=monitor.alsa.properties { alsa.use-ucm = false }= and a =monitor.alsa.rules=
+entry with =device.disabled = true= for
+=alsa_card.pci-0000_c1_00.5-platform-acp-pdm-mach=, then =systemctl --user
+restart wireplumber=. The ALC285 falls back to its analog-stereo profile whose
+Internal Microphone pin (0x12) carries real audio; the default source is
+=alsa_input.pci-0000_c1_00.6.analog-stereo=, port =analog-input-internal-mic=,
+with the source volume lowered because the analog path stacks +30 dB capture
+on +30 dB boost. Revert: delete the file and restart wireplumber.
+
+What the installer needs: write that drop-in on this hardware only (gate on
+the =acp-pdm-mach= card or the Framework 13 AMD board id, not on the
+hostname), beside the existing pipewire/wireplumber package install, with a
+fixture test in the installer-steps suite. The live file on velox is the
+reference content. The audio failure taxonomy already lists =use-ucm= both
+ways as an audio-doctor AUTO remedy
+([[file:docs/design/2026-07-10-audio-failure-taxonomy.org][docs/design/2026-07-10-audio-failure-taxonomy.org]]), so the
+doctor's remedy and this drop-in should agree. The standing re-check after
+each kernel update (remove the drop-in once the upstream fix lands, UCM back
+on) lives in velox's machine notes, the KB node "velox's internal mic needs
+UCM off and the ACP PDM card disabled until the AMD digital-mic kernel bug is
+fixed", linked from the velox hardware node's neighbourhood, not in this
+one-shot task.
+
+Verify: =pactl get-default-source= names the analog-stereo source, and a
+short =arecord= of the internal mic has an rms well below 0.99.