Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions docs/internal/known-issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Known Issues — PyWorkout

Concrete defects and gaps found while writing this repository's documentation in
August 2026. **Nothing here was changed** — each one needs a code, configuration, or
licensing decision rather than a documentation one.

Ordered by severity. See [`docs/roadmap.md`](../roadmap.md) for the narrative version,
which also covers deliberate non-goals.


**4 open:** 2 medium, 2 low.

## 1. Startup banner claims GPL terms on an MIT project

**Severity:** Medium
**Where:** `main.py`

**What:** The program prints GPL boilerplate at startup — "ABSOLUTELY NO WARRANTY", "free software", "redistribute it under certain conditions" — with a 2021-2024 copyright line. The repository is MIT and `LICENSE.md` is the MIT text.

**Why it matters:** The program tells every user it is under terms that do not govern it.

**Suggested fix:** Replace the banner with the MIT notice, or drop it. `LICENSE.md` is authoritative either way.

## 2. `skip` and `stats` are mutually exclusive

**Severity:** Medium
**Where:** `main.py`, around lines 484-561

**What:** Using `skip` disables `stats` for the rest of the session; the program prints "You cannot use both the `skip` and `stats` commands, sorry!"

**Why it matters:** Both commands manipulate overlapping session bookkeeping inside a single ~600-line `workout()` function, so neither can be fixed without untangling that state.

**Suggested fix:** Extract session state into its own model. That is also what would make the two help outputs collapse into one.

## 3. Help text is printed twice and the copies have drifted

**Severity:** Low
**Where:** `main.py`, around lines 613 and 632

**What:** Help is printed inline in two places. One documents the `skip`/`stats` limitation; the other omits it.

**Why it matters:** Which caveat a user sees depends on where they asked for help.

**Suggested fix:** Single source the help text.

## 4. The `video` command needs source edits to do anything

**Severity:** Low
**Where:** `main.py`, under the `# Video File Paths` comment

**What:** Video paths are literals in the source and point nowhere useful by default.

**Why it matters:** A command that does nothing until you modify the program is closer to unimplemented than to configurable.

**Suggested fix:** Move paths into a config file, or make the command report that none are set.


---

## Also, across every repository

**`.bandit` is present on disk but untracked in git.** Verified in PyWorkout, treklogger,
skyscanner-cli, booking-cli, piggy, and aibot — the config file exists locally in each but
`git ls-files` does not know about it, so none of it reached GitHub.

The August 2026 security sweep therefore looks complete locally and landed nowhere. Worth
checking across all 44 repositories it covered.