1. add commands_typed/tests.py with run_tests(), collect_tests(), filter_tests();
2. support test_names as dotted prefixes or * glob patterns via fnmatch;
3. add dry-run mode via collect subcommand in __main__ with argparse;
4. add [tool.online-fxreader-pr34.tests] section: search_paths, test_names, discovery_paths;
5. extend PyProject dataclass with Tests nested class in cli_bootstrap.py;
6. parse tests config in pyproject_load via check_dict/check_list;
7. add tests() method to commands_typed/cli.py base CLI class;
8. simplify python/cli.py to delegate to self.tests(project_name, argv);
9. auto-patch PYTHONPATH from search_paths before running tests;
10. narrow unittest discover start_dir from common prefix of test_names;
1. set ruff line-length to 100, reformat 18 files;
2. move pr34 version to pyproject.common.toml, read via toml in meson.build;
3. fix meson install_subdir to only include meson/toolchains, not entire meson/;
4. add meson:install:list command with --mode meson|pyproject for dry-run;
5. add .venv-whl-cache to .gitignore exceptions and .gitattributes lfs tracking;
6. release pr34 v0.1.5.66 .whl;
7. commit python/.venv-whl-cache and archlinux/.venv-whl-cache via lfs;
1. merge gitea/master into 25-llm-archlinux-package-manager;
2. incorporate master deps: tomlq, pip==25.1, django, fastapi, uvicorn;
3. add requirements.3.13.txt with version-specific mapping;
4. remove generic requirements.txt, pyproject.toml from tracking;
5. fix whl_cache_download to run once after compile, before install;
6. update m.py to use pyproject.common.toml for bootstrap;