Commit Graph
12 Commits
Author SHA1 Message Date
Dash 92d4466f6d build: add pyte and measure subprocess coverage
pyte is a VT100 emulator; the curses tests will run pqcli in a
pseudo-terminal and read the rendered screen through it.

Coverage now also measures the pqcli processes the tests start, so the
curses UI and the existing CLI subprocess tests count towards the
report.
2026-10-17 19:46:04 +02:00
Dash 8d523a4af8 build: update locked packages
xdg-base-dirs 6.0.3 and windows-curses 2.4.2. The development tools
and the ruff hook were already at their latest versions.
2026-10-17 19:15:33 +02:00
Dash 7573807808 build: drop the unused urwid dependencies
Nothing imports urwid or urwid-readline since the interfaces moved to
plain curses, yet every install pulled both in.
2026-10-17 19:13:32 +02:00
Dash 4dd2cdf1ad misc: release 1.1.0 2026-10-17 18:56:55 +02:00
Dash 56a954e6c5 build: drop pre-commit from runtime dependencies
The Docker commit added pre-commit to [project] dependencies, so every
install of pqcli pulled it in. It is a development tool, and the hooks
run through prek from the dev group now.
2026-10-17 18:56:54 +02:00
Dash 00794aca37 build: type-check with ty in a pre-commit hook
ty joins the dev dependency group, locked at 0.0.89, and a local
hook runs `uv run ty check` over the whole project whenever Python
files change. [tool.ty.src] limits the check to pqcli/ and tests/,
so agent worktrees under .claude/ are not checked as duplicate
copies of the project.
2026-10-17 15:55:58 +02:00
Dash ada8d5b6ed build: switch hooks to prek, check 50/72
prek replaces pre-commit as the hook runner and reads the same
config. A new commit-msg hook in .prek/ rejects subjects over 50
characters, subjects without a module prefix, and body lines over
72 characters. Install the hooks with `uv run prek install`, and run
them with `just lint`.
2026-10-17 15:55:55 +02:00
Dash c0c6c8aeba mechanic: move word lists to data files
The word lists (monsters, spells, equipment, races, classes, titles and
so on) now live in pqcli/data/*.json instead of pqcli/config.py. A
GameData object loaded at startup is passed to the simulation and UIs.

Users can replace any list by putting NAME.json in
$XDG_CONFIG_HOME/pqcli/data/ or a directory given with --data-dir.
--dump-data DIR copies the built-in files out for editing. Malformed
files are reported and pqcli exits before starting the UI.

Combat task descriptions come from the new combat_verbs list, with
{target} standing for the enemy. The built-in list holds only "Executing
{target}", and a single verb consumes no random roll, so stock gameplay
is unchanged. Recorded traces in tests/fixtures pin this down.

Monster, Race and Class stay in pqcli.config so existing saves still
load.

Resolves #3
2026-10-17 15:55:41 +02:00
Dash da60c6f792 build: remove poetry.lock 2026-10-17 15:55:28 +02:00
Jakub StastkaandJakub Stastka 696fad78b3 build: add Docker builds
Co-authored-by: Jakub Stastka <jakub@stastka.org>
2026-04-19 09:58:04 +09:00
Dash 7426924170 misc: release 1.0.4 2025-12-11 14:59:18 +01:00
Dash 4d5b070949 build: migrate to uv 2025-12-11 14:58:55 +01:00