-
489b4bb2a1
chore(spike): recover the /bygge toolchain from tmpfs (#28)
main

mathiasandClaude Opus 5
2026-08-13 11:36:24 +02:00
-
21e7d6c74b
fix(ci): smoke test hung 14min — buildah run doesn't die under plain timeout
mathias
2026-07-26 06:17:18 +00:00
-
8814ba6673
ci(smoke): use buildah run instead of sudo k3s ctr for smoke test
mathias
2026-07-26 05:57:37 +00:00
-
4b557a4325
ci(deploy): add Flux GitOps deploy job, mirroring cobalt-dingo's pattern
mathias
2026-07-25 21:21:02 +00:00
-
72cb25111f
test(store): address migrations by version, not step count (#8)
v0.15.2

mathiasandClaude Opus 4.8
2026-07-02 14:49:02 +02:00
-
38f222c931
chore: rename Go module path gitea.d-ma.be → git.d-ma.be
v0.15.1

mathiasandClaude Sonnet 4.6
2026-07-02 14:37:33 +02:00
-
e042b6d26d
chore: add .mcp.json (brain + gitea) — wire tapir for the single-harness workflow
mathias
2026-07-02 07:00:53 +00:00
-
c85a32e770
Merge pull request 'LANGUAGE.md: fix LiteLLM gateway never-say (stale endpoints, not piguard)' (#21) from language-md-litellm-fix into main
mathias
2026-06-16 15:45:45 +00:00
-
-
b246c0e688
fix(language): LiteLLM gateway never-say — stale endpoints, not piguard
mathias
2026-06-16 15:35:31 +00:00
-
-
c7896cb3cc
Merge pull request 'LANGUAGE.md pilot: hand-written vocabulary + caveman rubric (Phase 1)' (#19) from language-md-pilot into main
mathias
2026-06-16 15:22:14 +00:00
-
-
b79fb892c8
docs(claude): point to LANGUAGE.md + caveman rubric

mathiasandClaude Opus 4.8
2026-06-12 22:54:57 +02:00
-
c315e3e003
feat(language): add hand-written vocabulary + caveman rubric pilot
mathias
2026-06-12 20:52:23 +00:00
-
-
64e3368f5f
feat(web): charm-reader visual refresh with light/dark theme toggle (ADR-032, #17)
v0.30.0

mathiasandClaude Opus 4.8
2026-06-12 12:54:06 +02:00
-
b01f8d5783
docs(bdd): visual_theme.feature scenarios (@pending until TDD, #17)
mathias
2026-06-12 12:29:31 +02:00
-
8ca767c144
docs(adr): ADR-032 visual refresh — light(B)+dark(C) charm-reader themes + sketches (issue #17)
mathias
2026-06-12 11:54:54 +02:00
-
f98b640531
feat(web): inline-expand summary + Q&A in the list (ADR-031, #16)
v0.29.0

mathiasandClaude Opus 4.8
2026-06-12 10:47:47 +02:00
-
607a8cbe8d
docs(bdd): inline_expand.feature scenarios (@pending until TDD, #16)
mathias
2026-06-12 10:38:40 +02:00
-
54d60e53b9
docs(adr): ADR-031 inline-expand summary + Q&A in the list (issue #16)
mathias
2026-06-12 10:37:55 +02:00
-
9298e0c686
docs(homelab): TAPIR_METRICS_ADDR + key metric series (ADR-030, #15)
mathias
2026-06-12 08:50:36 +02:00
-
cd461b95f8
feat(observability): instrument AI + HTTP paths, serve /metrics on a side port (ADR-030, #15)
v0.28.0

mathiasandClaude Opus 4.8
2026-06-12 08:49:51 +02:00
-
9c2a04406b
feat(llm): usage hook to surface token counts (ADR-030, #15)

mathiasandClaude Opus 4.8
2026-06-12 08:36:02 +02:00
-
a5a8cf6f6d
feat(metrics): Prometheus collectors + typed API + HTTP middleware (ADR-030, #15)

mathiasandClaude Opus 4.8
2026-06-12 08:32:41 +02:00
-
64d11af9ef
docs(bdd): observability.feature scenarios (@pending until TDD, #15)
mathias
2026-06-12 08:28:46 +02:00
-
b590d2708d
docs(adr): ADR-030 observability — slog + Prometheus metrics (issue #15)
mathias
2026-06-12 08:27:56 +02:00
-
7314895ec4
fix(auth): stateless session cookie — stop logging users out on deploy (ADR-029)
v0.27.0

mathiasandClaude Opus 4.8
2026-06-11 23:07:13 +02:00
-
36dd182fb5
feat(report): Stage-0 usage gate counts from a baseline date (default 2026-06-11)
v0.26.0

mathiasandClaude Opus 4.8
2026-06-11 22:52:15 +02:00
-
40808f2d4b
docs(onboard): BDD scenarios + architecture for the ADR-028 burst
v0.25.0
mathias
2026-06-11 19:52:38 +02:00
-
9232f49555
feat(onboard): burst picks likely-good videos, summarizes with stronger model (ADR-028)
mathias
2026-06-11 19:50:56 +02:00
-
582c1a2065
feat(store): OnboardBurstVideoIDs — junk-avoiding burst selection (ADR-028)
mathias
2026-06-11 18:41:20 +02:00
-
9f0d8cf198
feat(discovery): persist video duration_s instead of discarding it (ADR-028)
mathias
2026-06-11 18:40:21 +02:00
-
d21077303d
feat(config): add OnboardSummarizerModel + OnboardMaxVideoSeconds (ADR-028)
mathias
2026-06-11 18:38:18 +02:00
-
9b2ee2e765
docs: spec onboarding-wow-burst + ADR-028 (better picks, stronger model)
mathias
2026-06-11 18:26:42 +02:00
-
b8fbc5a805
docs: spec first-session wow — verify & improve onboarding summary burst (investigate-first)
mathias
2026-06-11 15:36:09 +00:00
-
19ca4282a8
refactor(web): dock chat inline below the summary, integrated view (ADR-027)
v0.24.0

mathiasandClaude Opus 4.8
2026-06-11 14:02:39 +02:00
-
71df696448
feat(web): per-video chat over the stored transcript (ADR-027)
v0.23.0

mathiasandClaude Opus 4.8
2026-06-11 09:26:58 +02:00
-
cc3cda4ab8
feat(chat): stored-transcript QA service (ADR-027)

mathiasandClaude Opus 4.8
2026-06-11 09:16:45 +02:00
-
69a49bc603
docs(decisions): add ADR-027 — chat with a video's stored transcript

mathiasandClaude Opus 4.8
2026-06-11 09:13:31 +02:00
-
137804b0b1
docs: spec chat-with-transcript (ADR-027)
mathias
2026-06-11 06:38:16 +00:00
-
a9be5f285b
feat(summarizer): move local fallback off koala to iguana/gemma4-26b
v0.22.0

mathiasandClaude Opus 4.8
2026-06-11 07:54:56 +02:00
-
fe56e2fe01
test: make embedded-postgres per-process so concurrent CI runs don't collide
v0.21.1

mathiasandClaude Opus 4.8
2026-06-11 07:26:33 +02:00
-
beeb5bc31b
feat(gate): foreground caption fetches take priority over the background sweep (ADR-026)
v0.21.0

mathiasandClaude Opus 4.8
2026-06-10 22:10:15 +02:00
-
09eb31d1fe
fix(scheduler): derive rotation offset from wall-clock, not a reset-on-restart counter
v0.20.1

mathiasandClaude Opus 4.8
2026-06-10 21:59:12 +02:00
-
1665a1e7c4
feat(web): honest, state-aware summarize status with charm spinner (ADR-025)
v0.20.0

mathiasandClaude Opus 4.8
2026-06-10 21:52:33 +02:00
-
5219561a91
feat(discovery): per-channel caption-availability memory (ADR-024)
v0.19.0

mathiasandClaude Opus 4.8
2026-06-10 20:27:25 +02:00
-
9db06d8a63
feat(discovery): drop Shorts and livestreams before the caption fetch (ADR-023)
v0.18.0

mathiasandClaude Opus 4.8
2026-06-10 19:34:45 +02:00
-
1aa8a97f95
fix(scheduler): rotate over connected users only for true fair share
v0.17.1

mathiasandClaude Opus 4.8
2026-06-10 18:28:54 +02:00
-
cc69a912f4
fix(scheduler): rotate lead user each pass so caption budget is shared
v0.17.0

mathiasandClaude Opus 4.8
2026-06-10 18:07:01 +02:00
-
f4a0544903
fix(scheduler): cache transcripts on the scheduled path (ADR-021 regression)

mathiasandClaude Opus 4.8
2026-06-10 18:07:01 +02:00
-
e2a52789b9
feat(web): mode-aware backlog banner — stop telling manual users summaries auto-arrive
v0.16.0

mathiasandClaude Opus 4.8
2026-06-10 09:14:52 +02:00
-
e696b6405b
docs(build-state): v0.15.0, summarizer is now a resilient chain (ADR-022)
mathias
2026-06-10 08:59:26 +02:00
-
e9b5a3f3e7
feat(summarizer): resilient endpoint chain with local→cloud fallback (ADR-022)
v0.15.0

mathiasandClaude Opus 4.8
2026-06-10 08:36:16 +02:00
-
0ba78e8868
docs: refresh build-state for transcript persistence (ADR-021)
v0.14.0

mathiasandClaude Opus 4.8
2026-06-09 23:39:27 +02:00
-
821d5f99cd
docs(bdd): scenario for transcript reuse — re-analysis never re-fetches

mathiasandClaude Opus 4.8
2026-06-09 23:37:54 +02:00
-
5c70408e75
feat(usecase): read stored transcript before fetching (ADR-021)

mathiasandClaude Opus 4.8
2026-06-09 23:35:04 +02:00
-
cb6917ca59
feat(store): shared, video-keyed transcript persistence (ADR-021)

mathiasandClaude Opus 4.8
2026-06-09 23:32:12 +02:00
-
099b2d4c68
docs(decisions): ADR-021 — shared, video-keyed transcript persistence

mathiasandClaude Opus 4.8
2026-06-09 23:24:11 +02:00
-
f66c1bcdcc
feat(web): real channel filter — multi-select of the user's channels
v0.13.0

mathiasandClaude Opus 4.8
2026-06-09 23:02:54 +02:00
-
1e65c3b413
fix(web): show paste box to any connected user, not only on an empty feed
v0.12.1

mathiasandClaude Opus 4.8
2026-06-09 22:17:00 +02:00
-
87c978774f
docs(bdd): scenarios for paste-a-URL + onboarding burst, mapped to tests
v0.12.0

mathiasandClaude Opus 4.8
2026-06-09 22:06:40 +02:00
-
70a9f1d4cd
feat(web): in-feed paste box + onboarding-aware connect confirmation

mathiasandClaude Opus 4.8
2026-06-09 22:06:40 +02:00
-
1d5b2c6365
feat(serve): wire paste fetcher + connect-time onboarding burst
v0.11.0

mathiasandClaude Opus 4.8
2026-06-09 21:58:39 +02:00
-
62acfee2ed
feat(web): paste-a-URL handler — add an arbitrary video + summarize (Feature 2)

mathiasandClaude Opus 4.8
2026-06-09 21:54:28 +02:00
-
2907801aca
feat(youtube): VideoByID for arbitrary-video metadata (paste-a-URL)

mathiasandClaude Opus 4.8
2026-06-09 21:43:28 +02:00
-
59050c4db6
feat(store): NewestUnsummarizedVideoIDs for the onboarding cap

mathiasandClaude Opus 4.8
2026-06-09 21:39:40 +02:00
-
c320ed88aa
feat(config): add TAPIR_ONBOARD_SUMMARIZE_COUNT (default 3, hard cap 5)

mathiasandClaude Opus 4.8
2026-06-09 21:35:05 +02:00
-
bddd75d92e
feat(web): parse YouTube video id from pasted URL forms

mathiasandClaude Opus 4.8
2026-06-09 21:35:05 +02:00
-
e4c701c6f1
feat(discovery): trigger a discovery pass on YouTube connect
v0.10.0

mathiasandClaude Opus 4.8
2026-06-09 21:15:46 +02:00
-
b527db9739
docs: bump last-tag reference to v0.9.0
mathias
2026-06-09 21:03:44 +02:00
-
c5f556d1d6
fix(scheduler): skip discovery for users with no video connection
v0.9.0

mathiasandClaude Opus 4.8
2026-06-09 20:49:11 +02:00
-
a884e7e9c5
test(bdd): add scenario name-coverage gate (no godog)

mathiasandClaude Opus 4.8
2026-06-08 22:59:25 +02:00
-
27fd33c99c
docs: reconcile requirements + architecture with ADR-020

mathiasandClaude Opus 4.8
2026-06-08 20:21:14 +02:00
-
2c96926ff7
docs: correct stale last-tag reference (v0.4.0 -> v0.8.0)

mathiasandClaude Opus 4.8
2026-06-08 15:50:06 +02:00
-
2cda62b3ad
docs(adr): record ADR-020 recency-bounded auto-summarize + sparse honesty
v0.8.0

mathiasandClaude Opus 4.8
2026-06-08 14:04:37 +02:00
-
f29927f50d
test(web): guard against the removed over-promise card copy

mathiasandClaude Opus 4.8
2026-06-08 14:03:08 +02:00
-
51aa5d940c
feat(web): segment watched/skipped action toggles

mathiasandClaude Opus 4.8
2026-06-08 14:02:31 +02:00
-
f775441a62
feat(web): drop the empty terms checkbox from registration

mathiasandClaude Opus 4.8
2026-06-08 14:01:28 +02:00
-
12fb031b6c
feat(web): add a back link to the detail page

mathiasandClaude Opus 4.8
2026-06-08 14:00:17 +02:00
-
980638d80a
feat(web): slim the list filters and hide them when empty

mathiasandClaude Opus 4.8
2026-06-08 13:59:44 +02:00
-
40b703e02a
feat(web): collapse older + caption-less videos in the list

mathiasandClaude Opus 4.8
2026-06-08 13:55:07 +02:00
-
3df0459fed
feat(store): order video list by published_at, NULLS LAST

mathiasandClaude Opus 4.8
2026-06-08 13:50:30 +02:00
-
2384c47b81
feat(runner): bound auto-summarize to a recency window

mathiasandClaude Opus 4.8
2026-06-08 13:48:04 +02:00
-
4a0a56e152
feat(web): lead summary detail with takeaways

mathiasandClaude Opus 4.8
2026-06-08 13:44:20 +02:00
-
9bf1c31605
fix(web): correct stale welcome-page invite copy

mathiasandClaude Opus 4.8
2026-06-08 13:43:32 +02:00
-
a1a5217d77
feat(web): honest sparse-state and queue copy

mathiasandClaude Opus 4.8
2026-06-08 13:42:40 +02:00
-
9c7e3be984
docs(ux): add Stage-0 recency-bounded heuristic review

mathiasandClaude Opus 4.8
2026-06-08 13:11:41 +02:00
-
8e45f21d23
docs: ADR-019 (Authentik owns invites), supersede ADR-017

mathiasandClaude Opus 4.8
2026-06-07 23:01:14 +02:00
-
e7c2e575d3
refactor: remove Dex local-password invite provisioning (ADR-019)

mathiasandClaude Opus 4.8
2026-06-07 23:01:14 +02:00
-
9cd3f7e934
fix(dex): passwordName must match Dex's internal passwordID() — maps non-[a-z0-9-] to '-'
mathias
2026-06-07 11:37:24 +02:00
-
c812c71ecc
fix(dex): store raw bcrypt hash in Password CR, not base64-encoded
mathias
2026-06-07 09:28:11 +02:00
-
084b73907d
feat(task): add invite task — task invite EMAIL=user@example.com
mathias
2026-06-07 07:35:47 +02:00
-
0b04e487ad
docs: update card-state model — 'Summarize now' verb, no-captions state, five-state table
mathias
2026-06-06 22:42:37 +02:00
-
2fedc45443
feat(web): unify card states — one 'Summarize now' verb, honest no-captions state
mathias
2026-06-06 22:31:38 +02:00
-
58cd68c1eb
docs: spec video-card state unification — one "Summarize now" verb + honest no-captions state
mathias
2026-06-06 19:58:45 +00:00
-
e472015c76
docs: replace evasion framing with honest onboarding-prioritisation rationale
mathias
2026-06-06 21:29:25 +02:00
-
0c0225f9c6
feat(runner): process candidates newest-first within each pass (ADR-018)
mathias
2026-06-06 21:27:38 +02:00
-
8403e8e524
docs: spec newest-first batch ordering + honest Try-now/prioritisation docs
mathias
2026-06-06 19:20:27 +00:00
-
57e29ca06c
feat(web): pipeline stats bar, summarized-first sort, Try now button for rate-limited videos
mathias
2026-06-06 19:20:20 +02:00
-
24f2a69eaa
fix(web): gofmt view.go
mathias
2026-06-06 11:31:28 +02:00
-
241eebfd9f
docs(homelab): add TAPIR_FETCH_BACKOFF config, update snapshot date
mathias
2026-06-06 11:31:11 +02:00
-
317b0d4834
docs(ui-spec): add Dex auth details, invite onboarding, summarized-only filter, unavailable channels
mathias
2026-06-06 11:29:14 +02:00