1. separate pacman-specific types (apps/pacman/types.py) from general types (models.py);
2. split CLI into cli/main.py dispatcher with compile, archive, list_installed, download subcommands;
3. move cache_db into apps/cache/db.py, pacman client/db into apps/pacman/;
4. add pacman_manager_t (apps/pacman/manager.py) implementing manager_t ABC;
5. move resolver into resolver/ with general.py (pure python) and solv.py (libsolv);
6. add solv_types.py for solv-internal types, separate from general models;
7. change package_index_t.packages to 2-level dict (name -> version -> pkg);
8. add .add() and .iter_all() helpers to package_index_t and solv_index_t;
9. fix solver: SELECTION_NAME only, SOLVER_SOLVABLE for exact name+version match;
10. default expand_groups=False to prevent group bleed-through;
11. add dedupe=True mode to cache_db.load_indices via SQL GROUP BY;
12. fix provides hijack: vim==X no longer resolves to gvim;
13. add comprehensive unit tests: test_cli, test_compile, test_db, test_models, test_pacman, test_resolver, test_solv_backend, test_integration;
14. add test fixtures in tests/res/ with core/extra .db snapshots;
15. add libsolv experiments in tests/experiments/libsolv/;
1. add argv_extract_t for targeted argument extraction from argv;
2. add --bootstrap-help and --bootstrap-override cli args;
3. apply_overrides_to_constraints patches constraint file per override;
4. fix whl_cache_download to use target python_version, not host;
5. fix whl cache check to verify python_tag matches target version;
6. parse_whl_name_version now extracts python_tag from wheel filename;
7. add parse_req_name for extracting package name from spec;
8. use contextlib.ExitStack for temp file cleanup in compile;
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;
1. exclude archlinux namespace from pr34 ruff and pyrefly configs;
2. import overload from typing (available since py3.5) instead of typing_extensions;
3. add --no-annotate --no-header to uv pip compile;
4. read version from pyproject.toml in archlinux meson.build;
5. exclude archlinux from pr34 meson.build find;
1. update cli_boostrap.py example;
1.1. allow to force whl_cache update;
not reset;
1.2. log more command calls, before executing them;
2. update oom_firefox,
to produce some logs;
2.1. still not practical solution,
since tabs crash very fast,
and no integration with the browser,
to say extensions killing,
which happens still for some reason;
3. reuse pr34_logging.setup();
1. fetch sensitive configs,
mark telegram to prevent sway idle, when fullscreen;
2. update oom_firefox tool,
to support custom worker_regex, main_regex;
3. update .whl for pr34;
1. add l keybinding
to change in realtime cgroup max memory limit;
2. make sure keybindings are not working
when a dialog is opened;
3. make sure the app correctly handles Ctrl+C;
4. improve logging format, include a timestamp
and line locatin;
1. refactor python vim module;
1.1. experiment
with fast select based on popup in vim,
and multi threaded app in python;
1.2. TODO,
figure out some thread safe way
to call vim.command from python side threads;
1.3. update pydantic validate params;
1. make metrics in commands_typed
be agnostic of fastapi, django;
2. implement ping wrapper for rest.py in checks;
3. use env settings to specify hosts to ping;
4. add pyright, ruff into Makefile;
5. test in production;
1. provide properly custom pkg_config_path
folders for meson;
1.1. check that pyproject mode
correctly discovers library built
and installed by meson mode;
1. add pydantic based decorator,
that checks typing for incoming
arguments;
1.1. helps when some wrapping decorator
uses *args, **kwargs,
since pyright just ignores what happens after wards;