cat
22e508fe17
internal/pkg: expose measured reader to extern status
...
This is always required by the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 16:14:54 +09:00
cat
ec29e755fb
internal/pkg: replace outcomes from external cache
...
This is primarily useful for implementing a mirror service. This change also works around the zero-dependency FloodArtifact edge case.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 13:52:26 +09:00
cat
9aaf160ff4
internal/pkg: do not hold up cures during status link
...
This is a bunch of string operation and a single syscall. Do not hold up queue here.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 02:28:45 +09:00
cat
e192fca762
internal/pkg: check for unclean shutdown
...
This avoids running into nasty surprises opening a cache that suffered unclean shutdown due to power loss. All other parts of the cache are not prone to inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 01:21:00 +09:00
cat
8e8410ce38
internal/pkg: archive unpack artifact
...
This unpacks an internal/pkg archive stream used in the upcoming mirror service.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 19:46:36 +09:00
cat
76c1fb84c8
internal/pkg: stream decompress artifact
...
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 18:33:04 +09:00
cat
729be19af3
internal/pkg: rename archive checksum helpers
...
These names are more consistent with other helper names, so rename them while the API is still internal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 14:13:20 +09:00
cat
74c18390b4
internal/pkg: correctly scrub substitute status
...
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-02 15:37:55 +09:00
cat
fbd2329d50
internal/pkg: garbage collection
...
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-02 13:28:24 +09:00
cat
f5e9a0c04e
internal/pkg: destroy new substitution status on fault
...
This avoids leaving behind the substitution status path of a faulted cure.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:31:13 +09:00
cat
3bd4ef616c
internal/pkg: report errors exiting cure
...
This makes ongoing errors more obvious when multiple failures occur.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:25:42 +09:00
cat
f2f1726190
internal/pkg: record cure faults
...
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 17:58:18 +09:00
cat
f63203cb0a
internal/pkg: populate substitute status
...
These are not created when taking the fast path, but should be inherited from the alternative.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 16:16:37 +09:00
cat
4bede7ecdd
internal/pkg: discontinue DCE resolution on signal
...
This serves as a stopgap measure to skip long-running DCE resolutions.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:29:01 +09:00
cat
487a03b5a3
internal/pkg: deduplicate DCE by ident
...
This eliminates edge cases where target artifacts do not compare equal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:18:27 +09:00
cat
a167c1aba5
internal/pkg: hold artifact in DCE
...
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 19:45:25 +09:00
cat
6e113b8836
internal/pkg: content-based dependency substitution
...
This change introduces a new fast path for FloodArtifact. It is taken when a curing artifact has identical-by-content controlled relevant inputs and are otherwise identical to an already-cured artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 00:19:42 +09:00
cat
5a26895a22
internal/pkg: optionally suppress init verbosity
...
This flag applies to every exec artifact cured by the cache. It has no effect on cure outcome.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-05 20:03:06 +09:00
cat
ceb4d26087
internal/pkg: record cache variant on-disk
...
This makes custom artifacts much less error-prone to use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-23 00:53:21 +09:00
cat
9e752b588a
internal/pkg: drop cached error on cancel
...
This avoids disabling the artifact when using the individual cancel method. Unfortunately this makes the method blocking.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:24:48 +09:00
cat
27b1aaae38
internal/pkg: pending error alongside done channel
...
This significantly simplifies synchronisation of access to identErr.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:10:37 +09:00
cat
9e18de1dc2
internal/pkg: flush cached errors on abort
...
This avoids disabling the artifact until cache is reopened. The same has to be implemented for Cancel in a future change.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 02:59:44 +09:00
cat
30a9dfa4b8
internal/pkg: abort all pending cures
...
This cancels all current pending cures without closing the cache.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 22:40:35 +09:00
cat
3942272c30
internal/pkg: fine-grained cancellation
...
This enables a specific artifact to be targeted for cancellation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 19:33:21 +09:00
cat
0ff7ab915b
internal/pkg: move IR primitives out of cache
...
These are memory management and caching primitives. Having them as part of Cache is cumbersome and requires a temporary directory that is never used. This change isolates them from Cache to enable independent use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 01:02:13 +09:00
cat
f7f48d57e9
internal/pkg: pass impure job count
...
This is cleaner than checking cpu count during cure, it is impossible to avoid impurity in both situations but this is configurable.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-15 15:36:44 +09:00
cat
10f8b1c221
internal/pkg: optional landlock LSM
...
The alpine linux riscv64 kernel does not enable Landlock LSM, and kernel compilation is not yet feasible.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-07 12:44:07 +09:00
cat
9feac7738f
internal/pkg: optionally suppress via assumed checksum
...
This is quite error-prone and causes cache inconsistency similar to the store inconsistency seen on nix when a similar condition happens. Keep this behind a flag in case it is ever beneficial.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 20:33:59 +09:00
cat
591a60bac9
internal/pkg: per-cache SCHED_IDLE
...
This is cleaner than setting it globally, and is impossible to race.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 16:49:34 +09:00
cat
5093a06026
internal/pkg: cache flags
...
This is cleaner for extending the API.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 16:16:55 +09:00
cat
a6600be34a
all: use filepath
...
This makes package check portable, and removes nonportable behaviour from package pkg, pipewire, and system. All other packages remain nonportable due to their nature. No latency increase was observed due to this change on amd64 and arm64 linux.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-30 18:24:53 +09:00
cat
e661260607
internal/pkg: enter exec container
...
This enables much easier troubleshooting of failing cures.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 15:05:04 +09:00
cat
af038c89ff
internal/pkg: collection helper-artifact
...
This was moved from internal/rosa because it is considered generally useful.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 14:11:10 +09:00
cat
6d015a949e
check: move from container
...
This package is not container specific, and widely used across the project.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 15:39:03 +09:00
cat
8ea2a56d5b
internal/pkg: expose status file
...
This is useful for external tooling.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-05 16:58:52 +09:00
cat
a87ad28b8b
internal/pkg: scrub for dangling status
...
These cause build to fail to start.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-05 00:39:15 +09:00
cat
6fdd800b2b
internal/pkg: check filtered error
...
This avoids filtering some unrelated os.ErrExist.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-04 17:43:17 +09:00
cat
94e3debc63
internal/pkg: write per-artifact logs
...
This is currently only used by execArtifact. A later patch will add additional logging facilities.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-04 17:27:54 +09:00
cat
4f570cc5c9
internal/pkg: expose extra methods to file
...
This is useful for FileArtifact processing another stream.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-15 00:45:37 +09:00
cat
5828631e79
internal/pkg: split off context common
...
For making these methods available to RContext.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-15 00:39:24 +09:00
cat
17b64bb42c
internal/pkg: skip resolved cure errors
...
This significantly improves error resolution performance.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-11 17:50:18 +09:00
cat
de06ea2be4
internal/pkg: read buffer free list
...
Reader has a non-insignificant buffer that is worth saving as well.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-11 02:02:46 +09:00
cat
e0c720681b
internal/pkg: standardise artifact IR
...
This should hopefully provide good separation between the artifact curing backend implementation and the (still work in progress) language. Making the IR parseable also guarantees uniqueness of the representation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-05 08:24:09 +09:00
cat
f982b13a59
internal/pkg: improve error resolution
...
This was taking way too long for early failures.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-02-03 10:01:44 +09:00
cat
968d8dbaf1
internal/pkg: encode checksum in ident
...
This also rearranges the ident ir to be more predictable, and avoids an obvious and somewhat easy to get into inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-27 20:18:34 +09:00
cat
eb67e5e0a8
internal/pkg: exclusive artifacts
...
This alleviates scheduler overhead when curing many artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-27 01:23:50 +09:00
cat
861801597d
internal/pkg: expose response body
...
This uses the new measured reader provided by Cache. This should make httpArtifact zero-copy.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-25 16:10:34 +09:00
cat
334578fdde
internal/pkg: expose underlying reader
...
This will be fully implemented in httpArtifact in a future commit.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-25 14:48:25 +09:00
cat
6956dfc31a
internal/pkg: block on implementation entry
...
This avoids blocking while not in Cure method of the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-24 16:02:50 +09:00
cat
b72dc43bc3
internal/pkg: report dependency graph size
...
This is an interesting value to know when profiling.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-01-21 05:35:28 +09:00