Release 1.16.0
News ·
archied
The agent can hand you a file, and the dashboard works behind a reverse
proxy. Media delivery was fetch-by-URL only, so a file the agent produced
locally — a transcript, a log dump, a screenshot — was passed to Telegram as
a URL it could not fetch: the send did nothing and reported success. The new
send_file tool plus upload-by-reader delivery closes that, and every layer
that cannot deliver now says so rather than staying silent. Dashboard
mutations behind a TLS-terminating proxy were refused as cross-origin;
forwarded headers are now honoured, but only under an explicit opt-in that is
off by default.
- feat(telegram): deliver a local file as an uploaded attachment, choosing
upload-by-reader or fetch-by-URL per attachment;
send_fileresolves paths under the same confinement policy the read tool applies, so sending cannot reach what reading cannot - feat(gateway):
task_actionchat tool for operator task management — abandon, archive, retry, stop, cancel, approve and reject from chat, on the same action path and state machine as the dashboard - fix(webui): validate mutation
Originagainst the effective external scheme and host.X-Forwarded-Proto/-Hostare honoured only whenweb.trust_forwarded_headersis set, which is off by default and safe only behind a proxy that overwrites or strips untrusted forwarded headers - fix(webui): report a local file the dashboard chat cannot upload as
undelivered instead of dropping the event, which had reproduced the exact
silent non-delivery
send_filewas built to end - fix(daemon): detach terminal state transitions and cleanup from a cancelled context, so a stopped task still records its outcome
archie-agent
Version realigned with archied. This release jumps from 1.9.9 to 1.16.0
to put the two components on matching numbers; there are no 1.10-1.15 agent
releases. It clears the accumulated runtime backlog in one cut rather than
bundling it as a rider on a later change, so the list below spans several
weeks of work rather than one session’s.
Highlights:
- feat(nats): run an embedded server when no external NATS is configured, and expose the embedded broker to managed task workers
- feat(deployment): default to managed NATS workers; the daemon requires a full-task worker handoff and the legacy in-process, subprocess and single-stage execution paths are gone
- feat(forge): GitHub webhook receiver for immediate issue dispatch, with dedup regression proof; unbound webhook events are stored retention-bounded
- feat(webui): payload field mapping – bind JSON paths to named fields and preview before saving
- feat(scheduling): ticker engine with configurable interval and pools
- feat(storage): persist agent project state
- feat(agent): stamp archie-agent’s build and report it back to the daemon
- feat(tools):
generate_videovia MiniMax, gated behind config, andMultimodalResult.URLsfor remote-hosted media - feat(workflow): define the adversarial-review findings contract
Fixes:
- fix(worktree): bind publication to dispatch grants; reset retries to a
pristine base; reject diffs without a merge base; clean untracked files when
.gitis a gitdir file; post-push metadata resilience, cancellation and branch naming - fix(container): persist the npm cache for per-task MCP servers
- fix(agentexec): recover omitted finish calls
- fix(agentworker): move JSONL decode into storage, unblocking CI
- fix(telegram): compact tool output and drop turn caps
- fix(webui): give dashboard-initiated updates a phase-2 report; restore the provider gate and dashboard token accounting
- refactor: remove dead
BasePlatformAdaptercode and legacy execution paths
Shared with archied 1.16.0 (these packages are in both closures):
- feat(telegram): send local files as uploads, not fetchable URLs
- fix(webui,sendfile): close three holes the adversarial review found
- fix(webui): validate mutation Origin against the effective external scheme