# felhom.eu — task reports > **Overwrite** this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in [hub/CHANGELOG.md](hub/CHANGELOG.md); the scripts history lives in [scripts/CHANGELOG.md](scripts/CHANGELOG.md). --- # REPORT — Day-0 artifact manifest: version dropdowns + auto-derived sha (hub v0.29.0) **Date:** 2026-07-01 · **Repo:** `felhom.eu` (`hub/` + `manifests/`) Removes the hand-copied sha256 from the Day-0 artifact manifest UI. The operator now **picks a version** from a dropdown of what's actually in Gitea, and the hub **reads that version's sha256 from Gitea itself** — no transcription, no stale checksums — while keeping the deliberate human "which version is approved" gate (never auto-promotes "latest") and the hub as the checksum trust root. ## 1. Baseline → target hub `v0.28.0` @ `ce26c9d` → **`v0.29.0`**. (Follow-up to the colleague-safety batch; motivated by the manual manifest-bump toil flagged in the prior task.) ## 2. Feasibility verified against live Gitea (before coding) - **List versions:** `GET /api/v1/packages/admin?type=generic&q=` returns name+version — reflects what's actually present (pruned olders gone). Live: felhom-agent `[0.52.0, 0.43.0]`, felhom-golden `[0.85.1]`. - **sha without downloading:** `GET /api/v1/packages/admin/generic///files` returns `sha256` in metadata (agent `5bfc690c…`, golden file `golden.tar.zst` `f87031cc…`) — so the ~GB golden is never fetched just to hash it. ## 3. Files changed + commits (on `main`) - `hub/internal/gitea/gitea.go` (new) — read-only Gitea packages client: `ListVersions` (semver-desc), `FileSHA256` (metadata, no download). `hub/internal/gitea/gitea_test.go` — httptest unit tests. - `hub/internal/web/server.go` — `gitea` field + `SetGiteaClient`; `artifactChoices` helper; pkg/file consts; `handleConfiguration` passes `AgentChoices`/`GoldenChoices`. - `hub/internal/web/configs.go` — `handleSetArtifacts` reworked to derive the sha from Gitea authoritatively (`resolveArtifactSHA`); refuses the save on a lookup failure. - `hub/internal/web/templates/configuration.html` — version `