Antoine Lecompte
79c914c375
chore: remove the unused restic-api reference implementation ( #684 )
2026-09-15 13:08:31 +00:00
renovate[bot]
813fe2f9fc
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.9.9 ( #677 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 13:39:46 +01:00
renovate[bot]
6e256985cf
fix(deps): update module github.com/go-chi/chi/v5 to v5.3.2 ( #674 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 13:39:25 +01:00
renovate[bot] and Zack
68a083f954
fix(deps): update module github.com/cloudwego/eino to v0.9.19 ( #673 )
...
* fix(deps): update module github.com/cloudwego/eino to v0.9.19
* fix(deps): tidy columbo go.sum for eino v0.9.19
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack <zack@futo.org >
2026-09-15 13:39:03 +01:00
Zack Pollard
7893405621
chore(deps): bump prettier to 3.9.6 ( #682 )
2026-09-15 12:52:24 +01:00
renovate[bot]
be23665de9
chore(deps): update golang:1.27-alpine3.23 docker digest to d9e2f2f ( #625 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 08:53:09 +01:00
renovate[bot]
90d35e7292
fix(deps): update module go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp to v1.43.0 [security] ( #71 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 02:00:46 +01:00
renovate[bot]
1ee44c0c54
chore(deps): update alpine docker tag to v3.24 ( #139 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 01:03:18 +01:00
renovate[bot]
2231db7b2b
fix(deps): update aws-sdk-go-v2 monorepo ( #468 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-14 23:59:12 +01:00
renovate[bot]
27f53bccb4
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.9.8 ( #472 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-14 23:58:54 +01:00
Antoine Lecompte
29a0b653e9
fix(ci): de-flake the e2e job (loop-device image, fail-fast wait, diagnostics, hook timeout) ( #621 )
2026-09-14 23:36:27 +01:00
immich-push-o-matic[bot]
64b8a63d95
chore(main): release 0.43.0 ( #668 )
2026-09-14 17:54:13 +01:00
Paul Makles
249d91e87e
feat(yucca sdk): log on bootstrap ( #667 )
...
Signed-off-by: izzy <me@insrt.uk >
2026-09-14 17:51:08 +01:00
immich-push-o-matic[bot]
49ba857a5e
chore(main): release 0.42.0 ( #662 )
2026-09-14 16:42:57 +01:00
Antoine Lecompte and izzy
0bfca45a5b
fix(yucca sdk): surface the state database path and guard master key generation ( #653 )
...
Co-authored-by: izzy <me@insrt.uk >
2026-09-14 16:41:42 +01:00
Zack Pollard
5a144405cf
feat(docs): end-user documentation site at docs.futo.cloud ( #623 )
...
packages/docs is a SvelteKit site where every page is a +page.md compiled
by @immich/svelte-markdown-preprocess into @immich/ui components, deployed
to Cloudflare Pages the way static-pages deploys the immich.app sites
(tf/pages/docs; main -> docs.futo.cloud, every PR gets a preview).
The content is written for beta users: joining the beta, setting up in
Immich or the standalone container, the recovery key, backups, schedules,
restores, the account dashboard, troubleshooting and support. Internal and
developer documentation stays in docs/ and the per-directory READMEs.
2026-09-14 07:41:44 -07:00
Devin Buhl
ef1a5a68d9
fix(otel): export metrics every 10s and honour the otel env knobs ( #658 )
...
Signed-off-by: Devin Buhl <devin@buhl.casa >
2026-09-14 09:13:00 -04:00
immich-push-o-matic[bot]
7b1c3d7590
chore(main): release 0.41.0 ( #655 )
2026-09-14 08:32:47 -04:00
Antoine Lecompte
0b15733005
fix(michael): drain in-flight restic requests before closing the listener on rollout ( #660 )
2026-09-14 08:30:44 -04:00
Antoine Lecompte and izzy
a744273730
fix(yucca sdk): report interrupted backup runs to the backend on restart ( #651 )
...
Co-authored-by: izzy <me@insrt.uk >
2026-09-14 13:05:36 +01:00
Paul Makles
42a932406c
feat: first batch of closed beta improvements ( #657 )
2026-09-14 12:32:37 +01:00
Andy Molenda
5626011081
fix(monk): stop cleanly on SIGTERM and drop a per-PG map allocation ( #646 )
...
fix(monk): shut down cleanly on SIGTERM and drop the per-PG map allocation
2026-09-11 09:30:39 -07:00
Andy Molenda
5cafca4853
feat(monk): measure scrub lateness and mirror the mgr not-scrubbed check ( #644 )
...
* feat(monk): measure scrub lateness against ceph's schedule and the mon warn deadline
* fix(monk): measure lateness past ceph's latest scrub target
* fix(monk): withhold late and breach until the first config read
* fix(monk): gate late and breach on the snapshot's config source
2026-09-11 09:23:46 -07:00
immich-push-o-matic[bot]
1b00d89432
chore(main): release 0.40.2 ( #640 )
2026-09-11 09:17:48 -04:00
Antoine Lecompte
dcf3065fee
fix(michael): answer GET of a missing blob or config with 404, not 500 ( #650 )
2026-09-11 08:49:06 -04:00
immich-push-o-matic[bot]
edfe1c9aaa
chore(main): release 0.40.1 ( #638 )
2026-09-10 13:40:26 +01:00
Paul Makles
1e4e1b0612
fix: zod 4.4.3 - explicit defaults for coerce.boolean ( #637 )
2026-09-10 13:34:00 +01:00
immich-push-o-matic[bot]
58b1c0418b
chore(main): release 0.40.0 ( #635 )
2026-09-10 11:15:31 +01:00
Paul Makles
eed66845c8
feat: use zod for validation ( #636 )
2026-09-10 11:13:02 +01:00
Paul Makles
87e0066ff2
fix: more types that should be integers ( #634 )
...
Signed-off-by: izzy <me@insrt.uk >
2026-09-09 12:33:01 +01:00
immich-push-o-matic[bot]
59f2eaf84d
chore(main): release 0.39.0 ( #609 )
2026-09-09 07:05:55 -04:00
Paul Makles
7a04d36482
fix: explicitly mark keepLast as an integer ( #632 )
2026-09-09 10:45:45 +00:00
Paul Makles
037745c682
feat: use restic proxy in orchestrator when available ( #631 )
2026-09-09 11:02:19 +01:00
Devin Buhl
b03e7d1c93
ci: use official mise action and lock tools for linux/macos x64/arm64 ( #624 )
...
Signed-off-by: Devin Buhl <devin@buhl.casa >
2026-09-03 09:36:36 -04:00
Paul Makles
312062e33c
feat: standalone app login & work around Zitadel race condition ( #556 )
2026-09-03 13:35:35 +01:00
Paul Makles
f31f9be024
feat: destructive actions - delete repos & disable write-only ( #607 )
2026-09-03 13:02:52 +01:00
Paul Makles
76d48c26b4
feat: restic proxy ( #611 )
...
* feat(restic proxy): initial commit
* feat(restic proxy): working impl.
* fix(restic proxy): use repoId as grant key
* fix(restic proxy): handle http errors for meta
* fix(restic proxy): close http response body
* fix(restic proxy): use path not encoded path
* fix(restic proxy): unset RawPath
* docs(restic proxy): notes for later work
* fix(restic proxy): timeout on meta requests
* fix(restic proxy): concurrent minting
* fix(restic proxy): don't nil error
* fix(restic proxy): robust claims/exp check
* docs(restic proxy): document next work
* fix(restic proxy): respect log level
* chore(restic proxy): set default log level to info
* fix(restic proxy): permit temporary failures
* refactor(restic proxy): remove exit dead code
* chore: mise config
* feat(restic proxy): configurable well known URL
* chore(restic proxy): use real Exp
* refactor(restic proxy): use username as repoId
* fix(restic proxy): check repositoryId is set
* test(restic proxy): generate tests
* feat(restic proxy): publish Dockerfile
* feat(standalone app): include restic-proxy binary
* refactor(restic proxy): allow configuring api & meta URLs
test: generate accompanying tests
* chore: set config_roots
* test: drop comments from generated tests
* docs(restic proxy): add to USER_MANUAL
* fix(restic proxy): remint grant if auth token changes
* chore(restic proxy): update mise.toml
* refactor(restic proxy): differentiate session token w. 'token'
feat(restic proxy): denial cache
test(restic proxy): update generated tests for deny cache
* chore: remove `restic-proxy:check` from `check` dependencies (covered by
lint)
2026-09-02 16:37:31 +01:00
Andy Molenda
b9d60c667f
feat(monk): count scrub completions and track omap bytes ( #617 )
...
Backlog size and age answer how far behind the cluster is; nothing answered how fast it drains. Ceph exports no per-PG completion counter, and the old dashboard approximated pace from OSD scrub read-byte counters, which mixed raw bytes with logical ones and counted a re-scrub of the same PG as progress.
monk now diffs each PG's stamp against the previous refresh and counts the PGs and bytes that actually completed a scrub. A PG missing from either side is skipped rather than counted, so pool deletion and PG splits do not register as completions, and the first refresh after start has no predecessor so the counters simply begin at zero.
These are counters, so they dedup differently from the gauges: rate first, then `max by (cluster, pool_id)`. Taking `max` across instances before `rate` would read an instance restart as a jump, because the five instances start at different times and each counts independently. The README carries that rule and the time-to-clear query.
Also tracks omap apart from data bytes. `stat_sum.num_bytes` excludes omap, so `prod-z1.rgw.buckets.index` reports zero bytes while holding 164 GB across 524M keys on spice: every one of its PGs could go overdue without moving byte-weighted coverage. Existing metrics keep their meaning and `ceph_scrub_pool_bytes` still matches `ceph_pool_stored`; the omap figures are additive.
- `main` <!-- branch-stack -->
- \#617 :point\_left:
2026-09-01 14:33:22 -07:00
immich-push-o-matic[bot]
cf3795a196
chore(main): release 0.38.0 ( #538 )
2026-09-01 07:00:32 -04:00
Paul Makles
a08e47ff8a
fix: align migrations to actual schema & correct migrations task ( #608 )
2026-09-01 11:41:17 +01:00
Antoine Lecompte
7750b71620
fix(futo-backups-bot): ignore interactions from other guilds ( #602 )
2026-08-31 15:42:57 -07:00
Antoine Lecompte
bb0cd74bee
feat(columbo): give the agent fixed fleet-health probes and a bigger tool budget ( #600 )
2026-08-31 16:10:02 -04:00
Antoine Lecompte
8e9cd64c16
feat(columbo): retry model calls with per-attempt deadlines ( #598 )
2026-08-31 11:28:12 -07:00
Andy Molenda
16d9c700ce
fix(monk): harden failure paths, exec handling, and the metric contract ( #592 )
...
* fix(monk): harden failure paths, exec handling, and the metric contract
* fix(monk): log collection state transitions, not every failing refresh
* fix(monk): correct exec cancellation, waitdelay scope, and log levels
2026-08-31 06:26:57 -07:00
Antoine Lecompte
ce32472f89
fix(michael): log the resolved route plus op and blob_type on access lines ( #597 )
2026-08-31 08:38:17 -04:00
Antoine Lecompte
500107b5ce
feat(columbo): triage-refusal staff notes + per-user telemetry catalog ( #596 )
2026-08-31 08:38:05 -04:00
Andy Molenda
919398b0c9
feat(monk): add monk, a measured ceph scrub-backlog exporter ( #587 )
...
* feat(monk): add monk, a measured ceph scrub-backlog exporter
* fix(monk): harden collection failure paths
* docs(monk): defer the deploy role reference to its follow-up PR
* fix(monk): emit the age distribution as a real histogram and document operational contracts
* feat(monk): read overdue targets from the cluster instead of flags
* ci(monk): register the monk image build filter
* chore(monk): cut comments the types already carry
2026-08-28 14:55:11 -07:00
Andy Molenda
e2a7f657a8
test(yucca-admin-api): expect discordLink in the single-user response ( #590 )
2026-08-28 13:11:29 -07:00
Antoine Lecompte
b3aa57dc5d
feat(columbo): per-investigation audit log, tool-error recovery, pipe-aware log scoping ( #586 )
2026-08-28 13:57:28 -04:00
Antoine Lecompte
88267dc1f7
feat(columbo): add columbo ( #585 )
2026-08-28 13:26:11 -04:00