Commit Graph

10 Commits

Author SHA1 Message Date
457db3934c fix(apt): cache snapshot collision checks
Cache the complete snapshot-name listing once per hook invocation instead\nof querying ZFS separately for every dataset and counter candidate. This\nremoves the repeated full-pool scan that becomes expensive when recursive\nsnapshot histories are large.\n\nCache the operation suffix as well and return an explicit success status\nfrom snapshot-name generation so collision retries are unambiguous. Ignore\nAPT configuration-only records because they do not represent package data\nchanges requiring a new pre-install snapshot.
2026-09-16 09:46:01 +02:00
e227e27ec8 docs(docs): separate symlink and config installation
Document the executable and APT hook as symlinks into the repository\ncheckout. This keeps development changes immediately available at the\ninstalled paths.\n\nKeep the runtime configuration as an installed copy so local settings remain\nindependent from the checkout. Explain the expected paths and the need to\nupdate the APT executable path when choosing different locations.
2026-09-16 09:27:02 +02:00
24a6ce31a4 feat(meta): Ignore JetBrains files 2026-09-16 09:16:12 +02:00
1e587fbdea refactor(docs): No need to reference prior implementations 2026-09-16 09:15:39 +02:00
0a3b71ce1b docs(docs): explain APT snapshot operation
Document installation, APT protocol handling, dataset selection, recursive
snapshots, naming fields, package shortening, retention chains, and every
runtime configuration parameter.

Explain the relationship with the existing Pre-Invoke stop-gap and make the
expected callback frequency and direct-dpkg limitation explicit. Include
examples that show how affected package names appear in snapshot names.
2026-09-16 09:05:33 +02:00
97e023ee46 build(conf): add snapshot runtime defaults
Provide a deployable configuration with the default retention limits,
important package expression, dataset selection behavior, and snapshot name
formatting parameters.

Expose explicit recursive roots for installations such as bpool and rpool,
while retaining property-based selection as the default behavior. Document
operation suffixes for installs, removals, upgrades, downgrades, and mixed
APT callbacks through configuration values.
2026-09-16 09:05:24 +02:00
942128c89f feat(apt): add package-aware snapshot helper
Parse the APT package action protocol and classify records by operation.
Use the package list to determine important and trivial snapshot chains,
then generate collision-resistant names containing shortened package data.

Select ZFS datasets through the configured property or explicit roots.
Create recursive snapshots atomically, support dry-run output, and prune
old snapshots from the matching retention chain after success.

Preserve the original warning-oriented behavior by reporting snapshot and
retention failures without aborting the package operation.
2026-09-16 09:05:17 +02:00
71b1c8a106 build(hook): wire APT package action callbacks
Install the APT configuration fragment used to invoke the snapshot
helper before dpkg processes package files.

Request protocol version 3 and a dedicated information file descriptor so
the helper can classify package installations, upgrades, downgrades, and
removals without attempting to infer actions from the apt command line.
2026-09-16 09:05:13 +02:00
aa420d3507 meta(meta): document commit types and scopes
Define the Conventional Commits types currently used by the project.
Document the initial scope vocabulary for APT integration, hook wiring,
ZFS behavior, configuration, and documentation.

Require every future commit to carry a scope and keep verbose commit body
lines within the repository's 72-character limit. Require new types and
scopes to be documented before they are used.
2026-09-16 09:05:08 +02:00
f59d67fc90 Initial commit 2026-09-16 06:51:44 +00:00