chore(deps): bump node from 22-alpine to 25-alpine - #1
Closed
dependabot[bot] wants to merge 11 commits into
Closed
dependabot[bot] wants to merge 11 commits into
dependabot[bot] wants to merge 11 commits into
Conversation
10-crate workspace implementing the Indexarr read/write API, torrent name parser, content classifier, quality scoring, TMDB client, and identity management. Phase 1 (foundation): indexarr-core (config, models, DB schema, errors), indexarr-identity (Ed25519 keypair, contributor ID, ban list), indexarr-search (PostgreSQL FTS + 16 faceted filters), indexarr-web (Axum HTTP server, Torznab XML API, SPA serving), main.rs (CLI, worker orchestration, signal handling). Phase 2 (content pipeline + write APIs): indexarr-parser (regex-based torrent name parsing — resolution, codec, source, HDR, audio, episodes), indexarr-classifier (content type detection, quality scoring), indexarr-tmdb (TMDB API with rate limiter and circuit breaker), write endpoints (magnet upload, comments, votes, nuke moderation, tag CRUD, bulk import/delete, identity, system admin). 5,872 lines of Rust, 10 passing tests, ~35 API endpoints. Stub crates for Phase 3+ (DHT, announcer, sync).
Add indexarr-dht crate with: - DhtEngine: manages N librtbit-dht instances spread across 160-bit keyspace with adaptive crawling (random get_peers queries) - DhtSharedState: thread-safe hash queue + peer cache (DashMap, 200k max entries with LRU eviction) - Hash ingest worker: batches discovered hashes to PostgreSQL (500/batch, 5s flush interval, source priority: announce > get_peers > sample) - MetadataResolver: semaphore-bounded concurrent resolution, prioritized batch selection (priority > source quality > observations > recency), content pipeline integration (parser + classifier + quality scoring) - BEP 9 metadata fetch scaffolded (requires TCP peer connection wiring via librtbit-peer-protocol — noted as TODO) Wire dht_crawler and resolver workers into main.rs with proper lifecycle management (shared Arc<DhtEngine>, CancellationToken). ~880 new lines of Rust in indexarr-dht.
Phase 4 — indexarr-announcer (~320 lines): - Rolling pool announcer with HTTP tracker scrape for seed/peer counts - 3-strike rule (no_peers after 3 zero-activity scrapes) - Settle/rotate intervals, pool backfill from DB - Bencode scrape response parser Phase 5 — indexarr-sync (~1360 lines): - SyncManager: 3-loop gossip orchestrator (export, discovery, gossip) running concurrently via tokio::select! - DeltaExporter: incremental gzip NDJSON deltas with Ed25519 signing, SHA-256 content hashing, manifest generation, sequence tracking - DeltaMerger: 3-tier merge (insert/update/fill-gaps) with signature verification, epoch checking, ban enforcement, DoS limits - PeerTable: reputation tracking, tiered eviction, PEX discovery, longevity bonus, health tracking, DB persistence - Epoch system: signed declarations, data purge (seed vs non-seed), seed-only mode, filesystem cleanup All 5 workers now implemented: http_server, dht_crawler, resolver, announcer, sync. Total: ~8,500 lines of Rust, 10 passing tests.
- Multi-stage Dockerfile: Node 22 (Vue build) → Rust 1.86 (release binary) → Debian slim runtime (~13MB binary, ~30MB image) - docker-compose.yml: all workers + PostgreSQL 17 - docker-compose.sync.yml: sync-only mode (no DHT crawling) - GitHub Actions CI: cargo check, clippy, test, release build - GitHub Actions Docker: build + push to GHCR on main/tags - CLAUDE.md: project documentation for the Rust workspace - rust-toolchain.toml: pin stable channel All 6 phases of the Python→Rust migration complete. 8,512 lines of Rust, 10 crates, 10 tests, 13MB release binary.
Copy ui/ directory and classifier.yml from Python repo. These are needed by the multi-stage Dockerfile (Stage 1 builds Vue SPA).
CI and Docker builds need access to private AusAgentSmith-org repos (librtbit-dht, librtbit-core, etc.) via git+https. Configure git url.insteadOf with GH_PAT secret, set CARGO_NET_GIT_FETCH_WITH_CLI. Requires GH_PAT repo secret (set via gh secret set).
Bumps node from 22-alpine to 25-alpine. --- updated-dependencies: - dependency-name: node dependency-version: 25-alpine dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
AusAgentSmith
pushed a commit
that referenced
this pull request
Apr 14, 2026
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
thedancingdeveloper
added a commit
that referenced
this pull request
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps node from 22-alpine to 25-alpine.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)