Skip to content

Commit c01e016

Browse files
LeyckerSclaude
andcommitted
docs: record LeyckerS#157, LeyckerS#158 and LeyckerS#159 in the changelog and authors
- LeyckerS#158 (@nightcityblade, LeyckerS#81) takes ruff out of the version matrix - LeyckerS#157 (@XEDAB, LeyckerS#155) removes the assertion that could not fail - LeyckerS#159 (@AashishGupta2007, LeyckerS#145) removes the generated-era THEME block Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 9cd9787 commit c01e016

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

AUTHORS.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,19 @@ first contribution:
1818
| [@Moferanoluwa](https://github.com/Moferanoluwa) | added `--version` and made both report flavours record which build wrote them (#61); corrected the `--proxies` documentation that #48 had made stale (#63); brought `docs/ARCHITECTURE.md` in line with the shared download engine (#68); put CI on a 3.10/3.11/3.12 matrix with a `ruff` baseline (#69); made documentation-only pull requests verify their `moon_cli.py` examples against the real parser (#70); annotated the exception handlers in `moon_engine.py` and narrowed the report-save swallow (#71) |
1919
| [@RubenSanosh](https://github.com/RubenSanosh) | froze the elapsed-time clock when a run finishes, so the GUI stops counting after the last file lands (#73) |
2020
| [@darlenepolek](https://github.com/darlenepolek) | derived the CI byte-compile list from `git ls-files` so it can no longer drift, and made the lint workflow watch its own file (#77) |
21-
| [@XEDAB](https://github.com/XEDAB) | made a discarded partial download say so, instead of silently restarting a multi-gigabyte transfer when the server ignores a resume request (#98); gave `download_file` a way to reach the live log, so mid-transfer failures stop being invisible until the run ends — and fixed an `UnboundLocalError` reachable whenever a connection timed out before the first byte (#120); made the live speed divide by the observation window instead of the span of the buffered burst, ending a ninefold overstatement (#142) |
21+
| [@XEDAB](https://github.com/XEDAB) | made a discarded partial download say so, instead of silently restarting a multi-gigabyte transfer when the server ignores a resume request (#98); gave `download_file` a way to reach the live log, so mid-transfer failures stop being invisible until the run ends — and fixed an `UnboundLocalError` reachable whenever a connection timed out before the first byte (#120); made the live speed divide by the observation window instead of the span of the buffered burst, ending a ninefold overstatement (#142); found that an assertion shared by four tests in `test_no_chrome.py` was comparing a fabricated count against itself, and removed it from the two callers where it was invented while keeping it where the engine's own counter makes it real (#155, #157) |
2222
| [@tomatotomata](https://github.com/tomatotomata) | corrected the headless CLI example in `README.md`, which documented positional URLs and a `-o` flag the parser never accepted (#53) |
2323
| [@kocaemre](https://github.com/kocaemre) | taught the documentation guard to check single-dash flags, so it now catches the line it was written for (#104) |
2424
| [@Vam-si-krish](https://github.com/Vam-si-krish) | made an unsupported host fail on sight instead of being retried like a network error, and collapsed the host names to one definition shared by both front-ends (#108); extended the CI matrix to Python 3.13 and 3.14, closing the gap over the versions the project promises but never tested (#129) |
2525
| [@felix-windsor](https://github.com/felix-windsor) | stopped two links with the same filename from sharing one `.tmp` and corrupting each other, by reserving destination names at registration (#119) |
26-
| [@AashishGupta2007](https://github.com/AashishGupta2007) | narrowed and documented the eight exception handlers in the Chrome-lifecycle slice of `moon_extract.py` (#118) |
26+
| [@AashishGupta2007](https://github.com/AashishGupta2007) | narrowed and documented the eight exception handlers in the Chrome-lifecycle slice of `moon_extract.py` (#118); removed the dead THEME palette from `moon_engine.py`, having first checked that not one of its fifteen hex values appears in `web/styles.css` (#145, #159) |
2727
| [@Guflly](https://github.com/Guflly) | made `Engine.stop()` actually close Chrome before returning, so shutting down mid-run no longer leaves an orphaned browser holding its profile lock (#122) |
2828
| [@basisworks](https://github.com/basisworks) | documented that proxies cover downloads only — establishing that the fuckingfast `curl_cffi` session goes direct too, not just the datanodes browser (#128) |
2929
| [@PomPomSaturin](https://github.com/PomPomSaturin) | restored the dependency upper bounds without moving the floors, added a tested `constraints.txt`, and wrote the CI job that fails when a requirement has no upper bound — so they cannot be lost a third time (#136); made both worker gathers collect their failures instead of aborting on the first one, and name the worker that failed (#143) |
3030
| [@8nt0n](https://github.com/8nt0n) | made the proxy chip tell the truth before a run starts, distinguishing "no file" from "file with nothing usable in it", and extracted the line parser so the status check and the real load cannot disagree (#132) |
3131
| [@Allen58562](https://github.com/Allen58562) | made Stop interrupt transfers already in flight instead of waiting for them to finish, via a registry of per-download kill events signalled with `call_soon_threadsafe`, and gave a user-initiated stop its own `stopped` status so it is no longer counted as a stall kill and re-queued (#149) |
3232
| [@shard872](https://github.com/shard872) | made a full destination disk a run-level fatal condition instead of a per-file error — errno-based `ENOSPC` detection, a shared abort both front-ends observe, the folder and shortfall named in the live log, `.tmp` files preserved for resume, and a `memoryview` write loop so a short write on a nearly-full disk cannot truncate silently (#150) |
33+
| [@nightcityblade](https://github.com/nightcityblade) | took `ruff` out of the Python version matrix so it runs once per pull request instead of five times over identical work — keeping the `ruff==0.16.1` pin, so upstream adding a rule still cannot turn an unrelated pull request red (#81, #158) |
3334

3435
Dependabot handles the dependency and action bumps.
3536

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
1414
## [Unreleased]
1515

16+
### Removed
17+
- **The `THEME` colour palette at the top of `moon_engine.py`** — fifteen
18+
constants with no references anywhere. `moon_engine.py` was once *generated*
19+
from a tkinter GUI (`moon_tk.py` via `build_engine.py`, both deleted in
20+
`5f172d3`), and the palette was that GUI's, compiled into the output; deleting
21+
the generator never touched what it had produced. The live interface takes its
22+
colours from CSS custom properties in `web/styles.css`, which shares not one
23+
hex value with the block. Thanks to
24+
[@AashishGupta2007](https://github.com/AashishGupta2007) (#145, #159).
25+
26+
### Fixed
27+
- **`ruff` ran five times per pull request**, once inside each Python version of
28+
the byte-compile matrix, checking identical work every time — the linter's
29+
result does not vary with the interpreter it is installed under, and
30+
`ruff.toml` sets `target-version = "py310"` regardless. It is now a standalone
31+
job that runs once. The `ruff==0.16.1` pin is unchanged, which is the point:
32+
an unpinned linter turns unrelated pull requests red the day upstream adds a
33+
rule. Thanks to [@nightcityblade](https://github.com/nightcityblade) (#81, #158).
34+
- **A test assertion that could not fail.** `assert result["ok"] == len(urls)`
35+
was shared by four tests in `tests/test_no_chrome.py`. Through the two `run_cli`
36+
callers `ok` was fabricated — the stubs write no files, so `done == 0` and the
37+
helper substituted `len(urls)`, comparing a number with itself. Through the two
38+
`run_engine` callers it is real, taken from the engine's own counter. It is now
39+
asserted inline in the engine tests only, so the vacuous half is gone and the
40+
half that works still fails when the engine drops a URL. Thanks to
41+
[@XEDAB](https://github.com/XEDAB) (#155, #157).
42+
1643
### Added
1744
- **`moon_cli.py` now reports the run's outcome in its exit code.** It previously
1845
exited 0 whenever the run completed, whether one file failed or all of them

0 commit comments

Comments
 (0)