swarm-controller: CreateRepo/AddRepoMember/InitAgentConfigRepo forge nodes

This commit is contained in:
damocles 2026-08-16 23:05:13 +02:00 committed by mara
commit 1d31bb6e80
4 changed files with 647 additions and 46 deletions

View file

@ -17,17 +17,26 @@ anyhow.workspace = true
# neither, does not claim to need them.
async-nats = { workspace = true, features = ["kv"] }
axum.workspace = true
# swarm-controller's own forge client (`forge.rs`) — self-contained,
# deliberately not sharing code with `hive-c0re::forge` across the crate
# boundary (see #3306's design discussion: forcing that split now, over a
# few idempotent CRUD-ish calls, is premature plumbing).
forgejo-api.workspace = true
# Only for base64-encoding file content for `forge.rs`'s
# `repo_change_files` calls — forgejo's content API takes base64, never
# raw bytes.
base64.workspace = true
futures-util.workspace = true
# The graph itself, held directly rather than behind a c0re-style wrapper
# module — that layering (`hive-c0re::job_queue`) is partially legacy (predates
# `hive-jobq`'s extraction into its own crate) and this daemon does not need it
# repeated. No `Scheduler` yet either: nothing here submits or executes a job,
# so there is nothing to schedule — just a `Graph` for the read-only endpoints
# to serve.
# repeated. Driven by `hive_jobq::scheduler::Scheduler` (`spawn_jobq_worker`),
# same shape `hive-c0re/src/job_queue/scheduler.rs` uses over its own graph.
hive-jobq.workspace = true
hive-jobq-wire.workspace = true
# `auth`'s bridge client — same crate the bridge itself uses to define the
# request/response shape, so the two ends cannot drift.
# request/response shape, so the two ends cannot drift. `forge.rs` also
# uses this directly for `StatusCode` in its error-classification helpers.
reqwest.workspace = true
serde.workspace = true
serde_json.workspace = true
@ -44,6 +53,7 @@ swarm-queue-client = { workspace = true, features = ["kv"] }
tokio.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
url.workspace = true
utoipa.workspace = true
utoipa-axum.workspace = true