aboutsummaryrefslogtreecommitdiff
path: root/todo.org
Commit message (Collapse)AuthorAgeFilesLines
* chore: overnight sentry hygiene — file 2 inbox tasks, archive completed workCraig Jennings6 days1-86/+89
|
* docs: close audit test-quality clusterCraig Jennings7 days1-1/+3
|
* docs: close gallery-widget elisp bugsCraig Jennings7 days1-1/+3
|
* docs: close VM-framework robustness clusterCraig Jennings7 days1-1/+3
|
* docs: close stale inetutils task (done in 1115543)Craig Jennings7 days1-2/+4
|
* docs: close pacman-hook-order tautology taskCraig Jennings7 days1-1/+3
|
* docs: close net-scenarios green-exit taskCraig Jennings7 days1-1/+3
|
* docs: close stale cmail umask task (fixed in dffecf5)Craig Jennings7 days1-1/+3
|
* docs: close nvme early-module taskCraig Jennings7 days1-1/+3
|
* docs: file the Hyprland issue draft for manual postingCraig Jennings7 days1-1/+1
|
* docs: file the Hyprland layoutmsg crash with preserved evidenceCraig Jennings7 days1-0/+5
| | | | SIGSEGV via uncaught bad_variant_access in Layout::CAlgorithm::layoutMsg on a layoutmsg mfact dispatch. Upstream bug, seen on v0.54.1 (March) and v0.55.4 (today), both times from the layout-resize binds. Crash reports and tmpfs log excerpts land in working/hyprland-layoutmsg-crash/ so the evidence survives a reboot; graded [#B] (Critical x rare) in todo.org.
* docs: complete the code audit (S5-S7) and triage findings into tasksCraig Jennings7 days1-0/+18
| | | | | | | | Ran read-only audits over the last three coverage slices: the VM test framework (S5), the Python (S6), and the elisp prototype (S7). That closes the sentry code-inspection sweep -- all seven slices covered. S5 turned up five bugs (one Major: run-net-scenarios prints a diagnose failure but exits green) and three refactors. S6 found one bug plus a High test-quality defect -- the pacman-hook-order test compares two string literals, so the boot-critical hook ordering it claims to guard is never actually measured. S7 found three Minor bugs in the gallery-widget prototype (the needle clamps while the readout doesn't, a missing cl-lib require, a nil-path load) plus refactor and coverage gaps. Appended every finding to the sentry findings doc, marked the coverage tracker, and filed six graded tasks: the two Major/High defects as [#C], and four [#D] clusters (VM-framework robustness, prototype elisp bugs, test-quality, and a test-framework/prototype refactor group). Detection only -- nothing fixed here.
* docs: log validate_yesno + NVIDIA constant refactors, reslice rollupCraig Jennings7 days1-1/+3
|
* docs: close normalize-notify atomicity taskCraig Jennings7 days1-1/+3
|
* docs: close unguarded chmod/cp cluster taskCraig Jennings7 days1-1/+3
|
* docs: close resume-idempotency cluster taskCraig Jennings7 days1-1/+3
|
* docs: close wireguard tunnel-ordering taskCraig Jennings7 days1-1/+3
|
* docs: close sudoers.pacnew validation taskCraig Jennings7 days1-1/+3
|
* docs: close run_step state + exit-code taskCraig Jennings7 days1-1/+3
|
* docs: close df disk-space pre-flight taskCraig Jennings7 days1-1/+3
|
* docs: close chpasswd guard taskCraig Jennings7 days1-1/+3
|
* chore: reorder open-work tasks in todo.orgCraig Jennings7 days1-244/+244
|
* docs: file waybar module-separator taskCraig Jennings7 days1-0/+4
|
* docs: file archsetup move off cgit to private remoteCraig Jennings7 days1-1/+4
|
* docs: close WireGuard leak task, note cgit follow-upCraig Jennings7 days1-3/+11
| | | | | | Record the resolution (keys expired, all 10 configs purged from history, server gc'd, verified via anonymous clone) and file the cgit-exposure audit as the systemic follow-up. Update the config README to the out-of-band workflow.
* docs: log overnight code audit and file triaged installer bugsCraig Jennings7 days1-80/+112
| | | | | | Overnight sentry ran its hygiene passes plus a code-inspection pass over the installer and the scripts/ directory. It archived 6 completed tasks to Resolved and logged 19 bugs and 12 refactors in docs/design/2026-07-19-sentry-code-findings.org. I filed the bugs as tasks graded by severity times frequency. Nothing in the codebase changed, this was detection only. Two things stand out. The installer does no partitioning (it's a post-install config layer), so the real data-loss surface is boot config, and it overwrites GRUB_CMDLINE wholesale, which can drop a cryptdevice or resume param and leave a machine unbootable. Three WireGuard configs with live private keys are tracked in git, flagged for a rotate-or-keep decision.
* docs: expand desktop-settings spec and add panel prototypesCraig Jennings8 days1-17/+48
| | | | | | | | I folded the home-handoff control-set decisions into the desktop-settings panel spec. The controls table gains night-light, Do Not Disturb, power profile, lock/suspend actions, scenes, and a wallpaper sub-view. Volume and theme are out of scope, with reasons, and the format pickers move to their own display-format sibling spec (stubbed). The scenes and wallpaper-shape decisions close. The spec stays DRAFT pending UI prototyping. I added five direction prototypes over a shared engine (tile grid, sectioned rack, scenes-first, instrument cluster, expandable rows) so the layout gets picked against working behavior. I closed the shipped Next Session Focus work in todo.org: notification loudness, clock right-click dismiss, date-only scrolling, the wired-interface indicator, and best-saved WiFi connect, plus velox boot recovery. The three design-blocked network and audio items stay TODO with their open question recorded.
* docs: set next session focusCraig Jennings8 days1-0/+14
| | | | Prioritize autonomous Waybar, panel, and audio work.
* docs: clarify clock panel dismissalCraig Jennings8 days1-3/+4
| | | | Reserve left click and use right click to close the open panel.
* docs: file interface design referencesCraig Jennings8 days1-0/+69
| | | | Record the reconciled weather work and future component direction.\nFile the clock and retro-interface reference materials for later design work.
* docs: record weather comfort signalsCraig Jennings8 days1-0/+2
|
* docs: record weather baseline correctionCraig Jennings8 days1-0/+2
|
* docs: record weather bottom alignmentCraig Jennings8 days1-0/+2
|
* docs: record weather chip groupingCraig Jennings8 days1-0/+2
|
* docs: record weather alignmentCraig Jennings8 days1-0/+2
|
* docs: record weather glyph polishCraig Jennings8 days1-0/+2
|
* docs: record weather glyph sizingCraig Jennings8 days1-0/+2
|
* docs: record weather glyph updateCraig Jennings8 days1-0/+2
|
* docs: record weather location refreshCraig Jennings8 days1-0/+2
|
* docs: record weather forecast deliveryCraig Jennings8 days1-0/+3
|
* docs: clarify weather forecast toggleCraig Jennings8 days1-1/+1
|
* docs: define weather forecast click actionCraig Jennings8 days1-1/+1
|
* docs: define weather forecast viewsCraig Jennings8 days1-1/+1
|
* chore: track weather integrationCraig Jennings8 days1-1/+12
|
* chore: track package and notification workCraig Jennings9 days1-0/+17
| | | | Add the installed-package drift audit and notification sound loudness tasks.
* chore: archive resolved backlog tasks and note probe-flake recurrenceCraig Jennings9 days1-145/+8
| | | | Moved the completed maintenance, audio, and timer tasks into the archive, applied the lint counter fixes, and logged the batch-6/batch-9 fader-drag probe-flake recurrences on the existing tracking task.
* refactor(gallery): rename GW namespace to DUPRE, kit to The Dupre KitCraig Jennings9 days1-1/+1
| | | | | | The gallery and its library are now The Dupre Kit, named for the dupre color theme. GW was too opaque to remember. The stylesheet id is now dupre-css, the card handle property is .dupre, and page prose says instrument instead of widget. File names stay put. Renaming them is a separate decision. Historical log entries in todo.org keep their GW references as a record.
* feat(gallery): grow the split-flap into a randomized multi-row board with ↵Craig Jennings9 days1-0/+3
| | | | | | | | | | | | skins, faces and a flap-rate slider The N20 card becomes a three-row, six-cell departure board. Every advance sends each row to a completely different word, drawn at random from a 24-word pool with rows kept mutually distinct, and each cell runs at its own mechanical rate (a fixed 0.8x-1.35x of the base flap time), so letters and whole words finish at genuinely different times. A slider on the card sets the base rate (setFlapMs on the handle). The board advances only after it has settled and dwelt two seconds on the reading: the builder announces settle once per command (onSettle) and the page schedules the next advance from that signal, since a fixed-interval ticker would retarget mid-cascade and the panel would never rest. The chain stays gated off under reduced motion, where the board paints once and rests. Customization lands as two construction axes on the chip rig: skin (cream-on-black default, true-white ink, the ivory board, or white cards with dark lettering) and face (Berkeley Mono or Helvetica, the grotesque real boards wore). The skin chips are miniature flap cells, a letter in the skin's real ink on its real board colour, and the font chips letter themselves in their actual face, so every choice previews itself. The flap-rate slider rides in the chips row, and the card's amber word readout is gone: the board is the display. The deterministic seam for callers and tests is setText; randomness lives only in the demo path (next/scramble), which re-aims against the last commanded grid rather than in-flight glyphs. The settle work caught a real ordering bug: setText assigned each cell's target and ran it in one pass, so a cell finishing synchronously saw its neighbours' stale, already-satisfied targets and announced a partial board as settled. Targets now all land before any cell runs. Review caught two more: the dwell chain had escaped the reduced-motion gate (the board self-advanced every two seconds forever under reduced motion), and the skin chips rendered blank because the STYLES entries were strings where the rig paints an object's dot swatch. Since this is heading for extraction as a regular component, the builder got the full refactor pass: a contract comment covering every opt and the handle surface, small named helpers, no page globals, and all CSS in the one split-flap block. The same bar is filed as a sweep task for every other builder. Probe coverage grows to 78 checks: the reduced-motion rest, the live dwell measurement, the scramble contract, both style axes, the speed api and the swatch legibility.
* feat(gallery): make the N20 split-flap an honest Solari mechanismCraig Jennings9 days1-0/+3
| | | | | | | | The card's flip was a 0.3s drop-fade that teleported each cell straight to its target character — a suggestion of a split-flap, not one. Since the gallery card is the spec the ports get measured against, the fake would have propagated. Three behaviors replace it, studied from the HotFX split-flap component and re-derived (its repo carries no license, so no code was copied). The charset is the drum: opts.chars declares the flap order and a changed cell steps one flap at a time through intermediates, never jumping, so cells arrive staggered by travel distance. A set() mid-cascade re-aims the running cells at the new target. The fold is real: two half-panel animations per flip — the current top falls, the next bottom lands — over four clipped layers with backfaces hidden, replacing the drop-fade keyframe. animate:false (the reduced-motion gate) collapses every move to an instant jump. The handle grows setText, chars, and reading() so probes can sample the displayed state mid-cascade; the default width goes 3 to 4 cells, which stops truncating every demo word. Probe checks were written red first: cascade arrival, intermediate readings, one-flap-at-a-time stepping in charset order, mid-cascade retarget, and the instant animate:false path.
* chore(clock): file absorption follow-ups and fix the install-dep commentCraig Jennings10 days1-0/+7
|