diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-15 00:20:43 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-15 00:20:43 -0500 |
| commit | f53de255ffb94f72339b3922520dfb0579520779 (patch) | |
| tree | 49fc8dc74b6257041e0574f77deb9aa73c7142fe | |
| parent | 6715fc66e0e293e6d83acfd54a968388b75b8240 (diff) | |
| download | archsetup-f53de255ffb94f72339b3922520dfb0579520779.tar.gz archsetup-f53de255ffb94f72339b3922520dfb0579520779.zip | |
chore(todo): bump GitHub-prep subtask priorities to A
| -rw-r--r-- | todo.org | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -82,10 +82,10 @@ Even after removing files, secrets remain in git history. Options: =git filter-repo= to rewrite history, or start a fresh repo for the GitHub remote. Recommend: fresh repo for GitHub (keep cjennings.net remote with full history). -*** TODO [#B] Remove device-specific configuration +*** TODO [#A] Remove device-specific configuration =archsetup= lines 1458-1463: Logitech BRIO webcam udev rule — move to optional/configurable section. -*** DOING [#B] Add README.md for GitHub +*** DOING [#A] Add README.md for GitHub Project description, features, requirements, installation instructions, configuration guide (archsetup.conf), security considerations, contributing guidelines (or separate CONTRIBUTING.md), and license. @@ -93,20 +93,20 @@ contributing guidelines (or separate CONTRIBUTING.md), and license. **** 2026-05-11 Mon @ 13:01:29 -0500 AI Response: Initial README draft Drafted =README.md= at repo root, modeled on =~/code/chime/README.org=. First pass — review and run a voice/style pass before committing. Personal info (emails, =cjennings.net= URLs, personal repo names) intentionally replaced with placeholders for the eventual public release. -*** DOING [#B] Add LICENSE file +*** DOING [#A] Add LICENSE file GPL-3 chosen. Canonical GPLv3 text added at repo root as =LICENSE= on 2026-05-11. Follow-ups for a real GPL-3 release: add SPDX/license headers to source files (or a NOTICE), and the README already links to =LICENSE=. -*** TODO [#B] Remove binary font files from repo +*** TODO [#A] Remove binary font files from repo PragmataPro and Apple Color Emoji fonts in =dotfiles/common/.local/share/fonts/=. Add to =.gitignore=, document font installation separately. May have licensing issues for redistribution. -*** TODO [#B] Make claude-code installation optional +*** TODO [#A] Make claude-code installation optional Line 1781: =curl | sh= from claude.ai — should be behind a config flag. Not all users want AI tooling; curl-pipe-bash is a red flag for reviewers. -*** DOING [#B] Add input validation for username and paths +*** DOING [#A] Add input validation for username and paths Variables like ~$username~, ~$source_dir~, and paths are not validated. Special characters or malicious input could break the script or cause security issues. Should validate inputs match expected patterns (alphanumeric, valid paths, etc.). @@ -117,20 +117,20 @@ Added two pre-flight validators to =archsetup= (right after =load_config=, befor - =validate_config()= — runs whenever =--config-file= is used: rejects unknown =DESKTOP_ENV= (must be dwm/hyprland/none) early instead of dying in step 7-9; rejects =AUTOLOGIN=/=NO_GPU_DRIVERS= values that aren't =yes=/=no= (currently silently ignored); basic shape check on =LOCALE=; and a scheme + no-whitespace/no-leading-dash check on the six =*_REPO= URLs that get passed to =git clone= (rejects e.g. =--upload-pack=…= injection). Plain =echo …>&2; exit 1= (the logging helpers aren't defined that early). =$source_dir= needs no separate check — it's =/home/$username/.local/src=, derived from the now-always-validated =$username=. Not a security boundary (=load_config= sources the config as bash; a hostile config can already run anything) — it's typo-catching. Verified with =bash -n= and a smoke-test matrix of good/bad inputs through both functions. The next =make test= run confirms valid configs still install. Leaving as DOING for review. -*** TODO [#B] Move battery out of waybar sysmonitor group +*** TODO [#A] Move battery out of waybar sysmonitor group Battery module is inside =group/sysmonitor= which bundles cpu, temp, memory, disk, and battery together. Battery should be a standalone module in =modules-right= so it's visible on laptops without the full sysmonitor group. -*** TODO [#B] Resolution-adaptive scratchpad sizing +*** TODO [#A] Resolution-adaptive scratchpad sizing Pyprland scratchpad percentages (50% wide, 70% tall) look good on 3440x1440 but tall/narrow on 2256x1504 laptops. Currently using local config overrides per machine. Options: - Hyprland windowrulev2 size/move rules in conf.d (cleanest — reuses existing per-machine pattern) - Launcher script that generates config.toml based on detected resolution - Hostname-based symlink swap at login - Fixed pixel sizes (pyprland clamps to screen bounds) -*** TODO [#B] Dynamic waybar/foot config based on screen resolution +*** TODO [#A] Dynamic waybar/foot config based on screen resolution Resolution-aware font sizes and conditional module inclusion. A startup script detects resolution and generates waybar CSS and foot config with appropriate values, so both machines use the same stowed templates. -*** TODO [#B] Bulk shellcheck cleanup +*** TODO [#A] Bulk shellcheck cleanup Reviewed 2026-01-24: ~128 warnings, mostly acceptable patterns or low-priority style issues. - SC2024 (sudo redirects) - acceptable, script runs as root - SC2174 (mkdir -p -m) - reviewed, not a practical issue @@ -138,16 +138,16 @@ Reviewed 2026-01-24: ~128 warnings, mostly acceptable patterns or low-priority s Focus on warnings that matter for public code review. cj: you can probably do this one on your own. -*** TODO [#B] Document testing process in README +*** TODO [#A] Document testing process in README Help future maintainers and contributors understand and modify test infrastructure. cj: you can probably do this on our own. -*** TODO [#C] Add guard for rm -rf on constructed paths +*** TODO [#A] Add guard for rm -rf on constructed paths Lines 236, 466, 905: validate directory exists and is in expected location before =rm -rf=. cj: you can probably do this on your own -*** TODO [#C] Standardize boolean comparison style +*** TODO [#A] Standardize boolean comparison style Mixed =[ "$var" = "true" ]= vs =$var= evaluation — pick one pattern. -*** TODO [#D] Replace eval with safer alternatives +*** TODO [#A] Replace eval with safer alternatives Line 434: =eval "$cmd"= — use arrays or direct execution. ** TODO [#A] Review post-archsetup laptop setup steps (velox 2026-04-10) |
