aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-15 00:20:43 -0500
committerCraig Jennings <c@cjennings.net>2026-05-15 00:20:43 -0500
commitf53de255ffb94f72339b3922520dfb0579520779 (patch)
tree49fc8dc74b6257041e0574f77deb9aa73c7142fe /todo.org
parent6715fc66e0e293e6d83acfd54a968388b75b8240 (diff)
downloadarchsetup-f53de255ffb94f72339b3922520dfb0579520779.tar.gz
archsetup-f53de255ffb94f72339b3922520dfb0579520779.zip
chore(todo): bump GitHub-prep subtask priorities to A
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org28
1 files changed, 14 insertions, 14 deletions
diff --git a/todo.org b/todo.org
index dc15bb5..a3520a9 100644
--- a/todo.org
+++ b/todo.org
@@ -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)