feat(settings): agent binary asset source card (view, edit, refresh) #38

Merged
David merged 1 commit from feat/settings-agent-binaries-vapp-30 into main 2026-06-16 13:26:43 +02:00
Owner

Add a site-admin "Agent binaries" card to the Settings page that views, edits, and force-refreshes the Forgejo agent-binary asset source. The card seeds a typed form (enabled, base URL, owner, package, version, write-only token, minisign public key, agent ids, refresh interval) from the current fetcher config, saves edits, and shows the installed/failed counts from a manual refresh. The card self-hides for non-admins (is_site_admin) and the server fns reject non-admins independently, so hiding is defence-in-depth rather than the security boundary.

Add three server fns mirroring the existing get_server_config / create_user patterns: get_agent_fetcher_config (admin-only read of the runtime-settings overlay's agentbinaryfetcher block, token redacted), update_agent_fetcher_config (scoped settingsupdate write via request_ack, token sent only when changed), and refresh_agent_binaries (POST /agentbinaries/refresh reporting counts). Validation and auth errors surface inline via the ack_message path.

VS-37 is still in progress and has not pinned the wire contract, so the control-action names and JSON keys are documented inline as this consumer's assumed contract, to be reconciled when VS-37 lands.

#VAPP-30

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Add a site-admin "Agent binaries" card to the Settings page that views, edits, and force-refreshes the Forgejo agent-binary asset source. The card seeds a typed form (enabled, base URL, owner, package, version, write-only token, minisign public key, agent ids, refresh interval) from the current fetcher config, saves edits, and shows the installed/failed counts from a manual refresh. The card self-hides for non-admins (is_site_admin) and the server fns reject non-admins independently, so hiding is defence-in-depth rather than the security boundary. Add three server fns mirroring the existing get_server_config / create_user patterns: get_agent_fetcher_config (admin-only read of the runtime-settings overlay's agentbinaryfetcher block, token redacted), update_agent_fetcher_config (scoped settingsupdate write via request_ack, token sent only when changed), and refresh_agent_binaries (POST /agentbinaries/refresh reporting counts). Validation and auth errors surface inline via the ack_message path. VS-37 is still in progress and has not pinned the wire contract, so the control-action names and JSON keys are documented inline as this consumer's assumed contract, to be reconciled when VS-37 lands. #VAPP-30 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(settings): agent binary asset source card (view, edit, refresh)
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 1m15s
Create release / Create release from merged PR (pull_request) Has been skipped
17f86ec409
Add a site-admin "Agent binaries" card to the Settings page that views, edits, and force-refreshes the Forgejo agent-binary asset source. The card seeds a typed form (enabled, base URL, owner, package, version, write-only token, minisign public key, agent ids, refresh interval) from the current fetcher config, saves edits, and shows the installed/failed counts from a manual refresh. The card self-hides for non-admins (is_site_admin) and the server fns reject non-admins independently, so hiding is defence-in-depth rather than the security boundary.

Add three server fns mirroring the existing get_server_config / create_user patterns: get_agent_fetcher_config (admin-only read of the runtime-settings overlay's agentbinaryfetcher block, token redacted), update_agent_fetcher_config (scoped settingsupdate write via request_ack, token sent only when changed), and refresh_agent_binaries (POST /agentbinaries/refresh reporting counts). Validation and auth errors surface inline via the ack_message path.

VS-37 is still in progress and has not pinned the wire contract, so the control-action names and JSON keys are documented inline as this consumer's assumed contract, to be reconciled when VS-37 lands.

#VAPP-30

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
David merged commit 68fa0a93a9 into main 2026-06-16 13:26:43 +02:00
David deleted branch feat/settings-agent-binaries-vapp-30 2026-06-16 13:26:43 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/vervain-apps!38
No description provided.