Skip to content

fix: robustness, i18n upkeep, verifiers that verify, Python 3.9+ - #63

Merged
grojof merged 1 commit into
mainfrom
fix/robustness-i18n-tools
Oct 8, 2026
Merged

grojof merged 1 commit into
mainfrom
fix/robustness-i18n-tools

Conversation

@grojof

@grojof grojof commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Second audit, group F (the last): robustness, translations, verifiers, Python support, release and docs.

  • Ctrl+C during a long step used to leave the step running behind the menu. The whole process group is now stopped and waited for; checked against a real step.
  • Unexpected errors are named and the tool returns to the menu instead of printing a traceback. The language prompt, the file picker (out-of-range numbers, unreadable folders) and the health probe (non-HTTP answers) are hardened. --help and --version work without root.
  • Python 3.9+: one line used 3.12-only syntax, so the tool did not start on Ubuntu 22.04 or Debian 11/12. The full suite passes on 3.9, 3.10, 3.11 and 3.12, and CI now also runs it on 3.9. requires-python >=3.9, and ruff targets py39.
  • i18n: posture and path labels are now translated, and 86 dead catalog entries are removed. Tests now fail on a missing entry and on an unused one.
  • Verifiers now fail when they verify nothing: no --odoo / --clone, no nginx binary, or running as root in CI.
  • Scheduled backups refuse a remote or missing database, and the status shows the result of the last run.
  • Release: runs the CI workflow first, publishes only tags on main, marks pre-releases, and pins ruff, build and twine.
  • Docs: AGENTS.md, CONTRIBUTING, README, server-audit and platforms now match the code. After a delete, the manage menu leaves the deleted instance.

OpenSpec: 2026-10-08-robustness-and-upkeep.

Assisted-by: Claude

- A step runs in its own process group: Ctrl+C terminates (then kills)
  the whole step and waits for it.
- A last-resort handler names an unexpected error and returns to the
  menu; the language prompt, the file picker (out-of-range numbers,
  unreadable directories) and the health probe (non-HTTP answers) are
  hardened; --help and --version work without root.
- i18n: posture and path labels translated, 86 unused entries removed, a
  typo fixed; tests fail on missing and on unused entries.
- Verifiers fail when they verify nothing (no --odoo / --clone, no nginx
  binary, root in CI); Ctrl+C is checked against a real step.
- Python 3.9+: the one 3.12-only line fixed, requires-python >=3.9, ruff
  targets py39, CI runs the suite on 3.9.
- Scheduled backups refuse a remote or missing database and show the
  last run's result.
- Release runs the CI workflow first, publishes only tags on main, marks
  pre-releases, and pins ruff, build and twine.
- Docs: AGENTS.md (modules, checks), CONTRIBUTING, README, server-audit
  sections, platforms; the manage menu leaves a deleted instance.
@grojof
grojof merged commit 3ab5a81 into main Oct 8, 2026
1 check passed
@grojof
grojof deleted the fix/robustness-i18n-tools branch October 8, 2026 13:48
@grojof grojof mentioned this pull request Oct 8, 2026
grojof added a commit that referenced this pull request Oct 8, 2026
Version and changelog for 1.3.0: per-version install, OCB, complete and reversible neutralisation of copies, operations hardening, and the fixes of the double audit (#51-#63).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant