Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
b828f5c
feat(ingest): add safe workflow state model
Yesterday17 Jul 11, 2026
201bc4a
feat(ingest): validate persisted job snapshots
Yesterday17 Jul 11, 2026
2645c40
feat(annim): persist ingest jobs with optimistic locking
Yesterday17 Jul 11, 2026
9ea51d2
feat(ingest): parse content digests strictly
Yesterday17 Jul 11, 2026
6fcdea2
feat(annim): expose ingest workflow over GraphQL
Yesterday17 Jul 11, 2026
f3fc6d2
feat(annim): stream committed ingest updates
Yesterday17 Jul 11, 2026
62fc926
fix(common): preserve source when directory move fails
Yesterday17 Jul 11, 2026
cbd0137
feat(ingest): define immutable import plans
Yesterday17 Jul 11, 2026
18e8f70
feat(split): validate CUE track ranges
Yesterday17 Jul 11, 2026
2d80928
fix(split): fail on codec command errors
Yesterday17 Jul 11, 2026
e7ec3a1
fix(split): write valid RIFF chunk sizes
Yesterday17 Jul 11, 2026
d04caa8
feat(ingest): execute plans in verified staging
Yesterday17 Jul 11, 2026
674771e
feat(ingest): model metadata evidence and review
Yesterday17 Jul 11, 2026
297d275
feat(ingest): validate metadata draft snapshots
Yesterday17 Jul 11, 2026
43ea909
feat(annim): store versioned metadata documents
Yesterday17 Jul 11, 2026
a4a699e
feat(annim): persist metadata drafts atomically
Yesterday17 Jul 11, 2026
5f5a185
feat(ingest): validate metadata review context
Yesterday17 Jul 11, 2026
f69be7d
feat(annim): enforce metadata review commands
Yesterday17 Jul 11, 2026
743c415
fix(ingest): keep unknown dates incomplete
Yesterday17 Jul 11, 2026
c721e91
feat(ingest): validate evidence provenance
Yesterday17 Jul 11, 2026
903e319
feat(annim): expose metadata review GraphQL API
Yesterday17 Jul 11, 2026
12fbc7c
feat(catalog): model collection quality and cover sources
Yesterday17 Jul 11, 2026
c586858
feat(catalog): define collection lifecycle states
Yesterday17 Jul 11, 2026
aafde73
feat(annim): persist artist collection targets
Yesterday17 Jul 11, 2026
f62ae1c
feat(annim): persist catalog source observations
Yesterday17 Jul 11, 2026
57a7768
fix(catalog): preserve signed cover URL queries
Yesterday17 Jul 11, 2026
6bdf3cf
feat(catalog): model recoverable cover fetching
Yesterday17 Jul 11, 2026
86aa3a6
feat(annim): persist verified cover assets
Yesterday17 Jul 11, 2026
9c5e018
perf(annim): index catalog collection lookups
Yesterday17 Jul 11, 2026
7e77359
feat(ingest): materialize verified cover assets
Yesterday17 Jul 11, 2026
50a8986
feat(annim): serve artist collection aggregates
Yesterday17 Jul 11, 2026
fc13f86
feat(annim): expose artist collection GraphQL
Yesterday17 Jul 11, 2026
59b04dd
fix(catalog): constrain Amazon artwork rewrites
Yesterday17 Jul 12, 2026
8f275ec
feat(catalog): define content-addressed cover keys
Yesterday17 Jul 12, 2026
6443e6e
feat(cover): fetch and store remote artwork safely
Yesterday17 Jul 12, 2026
2690424
feat(annim): make authentication fail closed
Yesterday17 Jul 12, 2026
0b4714d
feat(annim): manage verified cover selections
Yesterday17 Jul 12, 2026
3c52350
feat(annim): synchronize external catalog observations
Yesterday17 Jul 12, 2026
4eca2ac
fix(metadata): send standard bearer credentials
Yesterday17 Jul 12, 2026
e9610e1
feat(annim): expose cover review GraphQL API
Yesterday17 Jul 12, 2026
dedf973
feat(annim): harden server transports
Yesterday17 Jul 12, 2026
3c2a7a9
feat(annim): expose catalog sync control API
Yesterday17 Jul 12, 2026
e601005
feat(annim): orchestrate cover acquisition
Yesterday17 Jul 12, 2026
e09d9cc
feat(annim): run cover acquisition worker
Yesterday17 Jul 12, 2026
5f35138
feat(catalog): model sync coverage and worker leases
Yesterday17 Jul 12, 2026
ea67c2e
fix(catalog): gate absence on complete snapshots
Yesterday17 Jul 12, 2026
7242e07
feat(annim): lease catalog sync workers
Yesterday17 Jul 12, 2026
d86a8af
fix(annim): resume catalog retries from cursor
Yesterday17 Jul 12, 2026
ef40def
feat(catalog): orchestrate external source adapters
Yesterday17 Jul 12, 2026
9e18ef7
feat(catalog): sync Apple Music artist releases
Yesterday17 Jul 12, 2026
4dbf712
feat(annim): add embedded web intake workspace
Yesterday17 Jul 12, 2026
313307e
feat(catalog): run Apple catalog worker
Yesterday17 Jul 12, 2026
93674e1
feat(annim): review metadata in web workspace
Yesterday17 Jul 12, 2026
6f084e7
feat(annim): author metadata evidence in web workspace
Yesterday17 Jul 12, 2026
98361ca
feat(annim): author artists and releases in web workspace
Yesterday17 Jul 12, 2026
c580d32
docs(annim): add production recovery runbook
Yesterday17 Jul 12, 2026
6e37120
feat(annim): track collection copies in web workspace
Yesterday17 Jul 12, 2026
1cd15cb
feat(annim): provision catalog sync credentials
Yesterday17 Jul 12, 2026
302c5bb
feat(annim): manage catalog sync lifecycle
Yesterday17 Jul 12, 2026
79f5144
feat(annim): manage catalog sync in web workspace
Yesterday17 Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ members = [
"anni-workspace",
"anni-playback",
"anni-metadata",
"anni-catalog",
"anni-catalog-worker",
"anni-cover-worker",
"anni-ingest",
"anni-ingest-worker",
"third_party/google-drive3",
]
resolver = "3"
Expand All @@ -23,7 +28,12 @@ license = "Apache-2.0"

[workspace.dependencies]
anni-common = { version = "0.2.0", path = "./anni-common" }
anni-catalog = { path = "./anni-catalog" }
anni-catalog-worker = { path = "./anni-catalog-worker" }
anni-cover-worker = { path = "./anni-cover-worker" }
anni-ingest = { path = "./anni-ingest" }
anni-metadata = { path = "./anni-metadata" }
anni-split = { path = "./anni-split" }

log = "0.4"
uuid = { version = "1", features = ["v4"] }
Expand Down
58 changes: 58 additions & 0 deletions anni-catalog-worker/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[package]
name = "anni-catalog-worker"
version = "0.1.0"
publish = false

edition.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true

[dependencies]
anni-catalog.workspace = true
annim = { path = "../annim", default-features = false }
chrono = "0.4.45"
futures-util = "0.3"
httpdate = "1.0.3"
reqwest = { workspace = true, features = ["stream"] }
sea-orm = { version = "1.1.20", default-features = false, features = [
"macros",
"runtime-tokio-rustls",
"with-chrono",
"with-uuid",
] }
sea-orm-migration = { version = "1.1.20", default-features = false, features = [
"runtime-tokio-rustls",
"with-uuid",
] }
serde.workspace = true
serde_json = { workspace = true, features = ["raw_value"] }
thiserror.workspace = true
tokio = { version = "1", features = [
"macros",
"rt-multi-thread",
"signal",
"sync",
"time",
] }
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
unic-langid = "0.9.6"
url = "2.5.8"
uuid.workspace = true

[features]
default = ["postgres"]
sqlite = [
"annim/sqlite",
"sea-orm/sqlx-sqlite",
"sea-orm-migration/sqlx-sqlite",
]
postgres = [
"annim/postgres",
"sea-orm/sqlx-postgres",
"sea-orm-migration/sqlx-postgres",
]

[dev-dependencies]
tempfile = "3.27.0"
Loading