diff options
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 104 |
1 files changed, 70 insertions, 34 deletions
@@ -46,6 +46,47 @@ below): input-side-spec.org (DRAFT, four decisions open). * Archsetup Open Work +** TODO [#B] Ship the Framework 13 AMD internal-mic workaround in the installer :bug:velox:audio:solo: +:PROPERTIES: +:CREATED: [2026-10-06 Tue] +:LAST_REVIEWED: 2026-10-06 +:END: +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 [#B] calendar-sync fails headless after every boot until authinfo is unlocked :bug:dotfiles:gpg: :PROPERTIES: :LAST_REVIEWED: 2026-10-04 @@ -1795,9 +1836,9 @@ Re-scope before building. The 1:7 ratio this task argues from is gone, and two of the three things it cites as noise are fixed at the source rather than filtered. -=87ff0b7= gave check 2 a machine-local expected-disabled list, so the four unit +=3397463= gave check 2 a machine-local expected-disabled list, so the four unit findings are declared intent rather than noise, and an entry whose unit turns -out to be enabled is itself reported so the list cannot rot. =3fbf3e0= dropped +out to be enabled is itself reported so the list cannot rot. =3686500= dropped =.claude= from check 4's expected set, since the gitignore sweep writes that line into every project whether or not one exists. velox went 8 findings to 1. @@ -2330,13 +2371,30 @@ anticipated this ("fresh clones automatically carry the post-purge rewritten git history"); nobody closed the task once the reinstall took that route. Verified rather than assumed: both repos are level with =origin/main= today — -archsetup at =6faa31c=, dotfiles at =65940f2=, both trees clean. +archsetup at =41fea69=, dotfiles at =65940f2=, both trees clean. One thing the reinstall did leave, and it is filed separately: the installer cloned both repos =--depth 1=, so the history was present-but-truncated until today's =git fetch --unshallow= (see the shallow-clone =[#A]=). A reconcile against the rewritten remote was still unnecessary — a shallow clone of the right history is not a diverged clone of the wrong one. + +*** 2026-10-06 Tue @ 06:08:06 -0600 Scrubbed the Signal pager number from this repo's history +The agent's Signal identity number sat in two tracked files from 08-17 +(a post-rebuild-check fixture) and 09-13 (a filed design note). A +working-tree redaction landed on 10-05, but the number stayed reachable in +history for anyone cloning over cgit, so I rewrote it out: =git filter-repo +--replace-text= in a fresh clone, verified by content search, diff search and +a grep over every revision (all zero) and by a byte-identical HEAD tree, then +a force-push of main, a server-side reflog expire and =gc --prune=now= on the +bare repo (the old head object is gone), and a hard reset of the velox and +ratio clones, each followed by a reflog expire and =gc --prune=now= so the +old objects are gone there too. 59 of 951 commits changed SHA, every +descendant of the 08-17 post-rebuild-check commit; tag v0.5 predates it and +is unchanged. +The old-to-new map is =assets/2026-10-06-history-rewrite-commit-map.txt=, +and the citations in this file, the task archive, the topgrade spec and the +KB nodes are remapped. Session logs keep the old SHAs; use the map. ** TODO [#B] Move archsetup off cgit to cjennings@cjennings.net :chore:security: :PROPERTIES: :LAST_REVIEWED: 2026-08-17 @@ -2348,7 +2406,7 @@ Plan: create a bare repo under cjennings's control off the cgit scan-path (e.g. Ran the task's own verification step as it stands today, which is the honest way to check an unstarted task rather than reading its body back. Anonymous =git ls-remote https://git.cjennings.net/archsetup.git= succeeded with no -credentials and returned =6faa31c= — this afternoon's HEAD. So the repo is +credentials and returned =41fea69= — this afternoon's HEAD. So the repo is still world-cloneable and current to the commit, not a stale published snapshot. @@ -5356,6 +5414,11 @@ Rewrote the bare =if $var= boolean conditionals (=show_status_only=, =fresh_inst *** 2026-05-26 Tue @ 15:27:09 -0500 eval task moot — the line-434 eval is gone, the survivor is deliberate Verified: the only =eval= left in =archsetup= is line 578 in =retry_install=, and it's intentional and documented — it captures =$?= directly from =eval "$cmd"= to dodge the if-compound-swallows-exit-code trap. Replacing it with an array would reintroduce that bug. The line-434 eval this task pointed at no longer exists. Nothing to change. +*** 2026-10-06 Tue @ 06:08:06 -0600 One secret scrubbed from history; the full pre-release scan is still owed +The Signal pager number was rewritten out of every commit on 10-06 (details +on the cgit audit task). That was one known string; before the public push, +run a full-history secrets scan rather than trusting the tree alone. + ** TODO [#C] The audio doctor never checks the microphone :bug:audio: :PROPERTIES: :LAST_REVIEWED: 2026-08-25 @@ -5622,33 +5685,6 @@ problem is separate and unchanged. repair_tunnel_dot_off (dotfiles net/src/net/repair.py) puts a tunnel link back to its DoT mode when turning DoT off didn't bring names back, and the evidence says "put back to <mode>" only when that restore succeeded. The restore-declined branch has no direct test. Give fake-resolvectl a second failure switch (FAKE_RESOLVECTL_DOT_RESTORE_FAIL) so the wording can be asserted absent as well as present. Follow-up from the f56fd1a review. * Archsetup Resolved -** DONE [#B] Function keys issue media actions instead of F-keys :bug:velox: -CLOSED: [2026-09-01 Tue] -:PROPERTIES: -:CREATED: [2026-08-19 Wed] -:LAST_REVIEWED: 2026-08-19 -:END: - -From the roam inbox, Craig's words: "function keys should issue F+number -functionality rather than their media functionality when the button is hit. -currently it's reversed and I have to hit function and the f button for F+number -functionality." - -Check first whether this belongs to archsetup at all. On a Framework the Fn-lock -is a firmware-level toggle held in the keyboard itself (Fn+Esc on most -revisions), not something the OS sets, in which case this is one keystroke -rather than a change here. If it is instead a hid/keyboard-module quirk, it is -ours. - -Grading: Minor severity (the keys work, they are on the wrong layer, and there -is a workaround) x every user every time (every F-key press) = P2 = [#B]. - -Resolved 2026-09-01: not ours, as the body suspected. The Fn layer is decided -in the EC (the keyboard reaches Linux as a plain AT keyboard on i8042), so no -OS-side knob exists. One keystroke: Fn+Esc toggles Fn Lock; Craig confirmed -F1-F12 now send F-keys by default. The EC holds the state across reboots; it -reverts only if the EC loses power (battery disconnect or mainboard reset), -which is likely why it flipped around the August reinstall. ** DONE [#A] Lock-screen clock stale after a real sleep :bug:hyprland:dotfiles:velox: CLOSED: [2026-09-13 Sun] SCHEDULED: <2026-08-25 Tue> :PROPERTIES: @@ -5702,13 +5738,13 @@ fix + verify the backup timer (runbook Phase 5). *** 2026-09-13 Sun @ 07:16:27 -0500 Applied the two live convergence steps on velox Ratio got both by hand on 2026-09-12 while velox was off the tailnet; velox came back on 2026-09-13 and got them over ssh: =systemctl disable --now -wsdd.service= (no Samba host to advertise; 43acf51 stops the installer +wsdd.service= (no Samba host to advertise; 64cccef stops the installer enabling it) and =systemctl mask passim.service= (the unit is static, so the -09-12 disable was a no-op; 38b1758 masks it in the installer, but +09-12 disable was a no-op; 495d16d masks it in the installer, but supplemental_software is a completed step there and doesn't re-run). Verified after: wsdd inactive/disabled, passim inactive/masked, zero listeners on 5357 and 27500. Same pass fast-forwarded velox's dotfiles to -f56fd1a and archsetup to dc00a62, and confirmed the headless Proton Bridge +f56fd1a and archsetup to 9c77b07, and confirmed the headless Proton Bridge service is still disabled there. *** 2026-09-13 Sun @ 07:56:37 -0500 Closed the drill and filed its working-dir artifacts |
