Commit Graph
16 Commits
Author SHA1 Message Date
Miguel Palhas 0fa422e170 feat(meta): TMDB search and movie lookup
ci / web (pull_request) Successful in 6s
ci / rust (pull_request) Successful in 46s
Search and detail lookup, carrying the two fields the policy engine
needs and that are easy to lose at the edge.

`original_language` arrives as bare ISO 639-1, which has one code for
both Portuguese variants, so the dub rule in §5.2 cannot be expressed
against it alone. `Movie` therefore also carries `origin_countries`,
from `origin_country` where TMDB has it and `production_countries`
otherwise, which is what separates a Brazilian film from a Portuguese
one.

Digital release dates come back appended to the detail call rather than
costing a second round trip, reduced to the earliest type-4 entry across
every country: a release existing in one region is a release that exists
on the indexers. `Movie::is_digitally_released` puts the §6.2 gate in
one tested place.

Responses are cached in process for a day, matching the metadata refresh
tick. Failures are never cached, so an outage cannot pin a title into a
bad state until tomorrow.

Tests are wiremock-backed, per §12.
2026-08-22 19:39:21 +01:00
naps62-yolo 84777169d0 feat(db): SQLite schema and movie migrations (#48)
ci / web (push) Successful in 7s
ci / rust (push) Successful in 35s
e2e / e2e (push) Successful in 47s
2026-08-22 19:36:39 +01:00
Claude b42b70f062 docs: warn that aoe send races with launch
ci / web (push) Successful in 6s
ci / rust (push) Successful in 22s
e2e / e2e (push) Successful in 30s
2026-08-22 19:27:11 +01:00
ClaudeandClaude Opus 5 86f6ed44f8 ci: keep the e2e job honest on an empty crate
ci / web (push) Successful in 5s
ci / rust (push) Successful in 21s
e2e / e2e (push) Successful in 30s
nextest fails a zero-test run, which is the behaviour worth keeping — passing
--no-tests=pass would let a broken filter go green once real tests exist.
Placeholder test instead, same as arr-core.

The first e2e run proved the Transmission service container pulls and starts;
it failed only at the empty test run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:24:17 +01:00
ClaudeandClaude Opus 5 bbe53bac80 ci: per-push gate, e2e and audit workflows
ci / web (push) Successful in 6s
e2e / e2e (push) Failing after 40s
ci / rust (push) Successful in 1m5s
Gate runs fmt, clippy with warnings denied, cargo-machete, and nextest.
nextest comes from a prebuilt binary rather than `cargo install` to keep the
run short. Cache covers ~/.cargo and target/, keyed on Cargo.lock plus the
toolchain file. Nothing builds --release.

e2e is a separate workflow, main plus PRs touching the crates whose seams it
covers. cargo-deny is weekly, off the push path.

Closes #2

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:20:47 +01:00
ClaudeandClaude Opus 5 f4e63f1ac5 chore: cargo workspace skeleton
Eleven empty crates per DESIGN.md §11, versions and lints pinned once in the
root manifest, Justfile carrying the §12 gate, nix dev shell.

The frontend steps in `just ci` no-op until web/ exists. arr-core carries one
placeholder test because `cargo nextest` fails a zero-test run, and relaxing
that would let a broken filter go green later.

Closes #1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:20:47 +01:00
Claude de3e77537f docs: add driver cadence and stuck-session handling 2026-08-22 19:11:48 +01:00
ClaudeandClaude Opus 5 1e590e56c0 docs: add driver prompt and merge policy
Relaxes the concurrency rule to per-crate edits, records that the PR daemon
spawns land and review-pr sessions automatically, and makes the driver the
only thing that merges — skipping a stalled reviewer rather than blocking.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:09:47 +01:00
Claude 5cf4eecdc3 docs: verify model ids and worktree launch 2026-08-22 18:57:38 +01:00
Claude 18fc1d1d44 docs: pair two models per difficulty tier 2026-08-22 18:52:35 +01:00
Claude dfd8440e10 docs: put fable 5 at the top tier 2026-08-22 18:51:34 +01:00
Claude c78e9ca09d docs: fix model tier ordering 2026-08-22 18:51:06 +01:00
Claude 6294763497 docs: restrict driver model set to four 2026-08-22 18:50:23 +01:00
ClaudeandClaude Opus 5 af33b38c1b docs: require impeccable skill for design and frontend
Adds the design-system issue, scaffolds .impeccable/live/config.json against
web/index.html, and records the aoe spawn commands for the codex GPT-5.6
models in the driver table.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 18:48:44 +01:00
Claude 3804e62eea chore: add issue seeding script 2026-08-22 18:22:48 +01:00
ClaudeandClaude Opus 5 966f36bf09 docs: design contract and driver conventions
Design for a single-service replacement of Radarr/Sonarr: domain model,
policy engine, sourcing via Prowlarr Torznab, import pipeline, reconcile
loop, crate layout, CI gate and build order.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 18:19:03 +01:00