Repository navigation
Releases: QaidVoid/errand
Releases · QaidVoid/errand
Release list
v0.4.0
Features
- (broker) Refuse an unlisted host and let the owner grant it (#107) (79b6aaa)
- (broker) Hold a provider key to its header and declared calls (#106) (0458261)
- (broker) Keep a receipt of every brokered provider call (#101) (31efaa5)
- (chat) List models as provider/model in !model (d8c1248)
- (commands) Add !gen-speech to read a text aloud (35c8320)
- (config) Give sessions kage's edit and music tools (38774bd)
- (config) Give sessions kage's speech tool (bbb9afb)
- (github) Mint each session an App token in place of the PAT (#108) (7aa20df)
- (session) [breaking] Give every session a project of its own (#110) (9e95a04)
- (session) Collect what a cold session left on disk (#105) (d9a4224)
- (session) Post the clips the agent makes (773a886)
- (session) Show what a running tool call is doing (9e1be92)
- (threads) Post what was said on the web in the thread (ec52f98)
- (web) Start from a home composer with model and command pickers (45f0af6)
- (web) Pick a session's model and complete commands (3c467d1)
- (web) Log in with Discord to act as your own account (56540fc)
- Address a channel picture to whoever asked for it (715e9b0)
- Let !gen-image name an effort (38323ab)
- Add !gen-image to run one prompt on the image model (b87e048)
- Generate images and post them to the thread (#35) (4a8011c)
Fixes
- (broker) Judge the dial, follow no redirect, require HTTPS (#70) (e876928)
- (broker) Scrub the credential from what a provider answers (#69) (f108fd5)
- (broker) Mint legible session secrets and scrub them by shape (#68) (c963f29)
- (broker) Give each session a broker and nonces of its own (#67) (9820a7e)
- (broker) Close refusals explicitly so git retries a 407 (e9737af)
- (broker) Require a proxy credential on CONNECT and forwards (#66) (ea629b7)
- (broker) Confine provider requests to configured origins (#58) (3ae5050)
- (chat) Make free-text upload captions inert (#60) (c73fe66)
- (commands) Narrow the help column to leave room under 2000 (18308eb)
- (config) Refuse a public interface that logs nobody in (57b26d0)
- (config) Reject unreachable image configurations (#62) (afdd54e)
- (provider) Stop reading an image answer at its cap (ebc31ba)
- (sandbox) Broker podman sessions and keep secrets off the argv (#103) (40252d6)
- (sandbox) Say what egress allows and refuse the Azure fabric (#98) (10ed2b2)
- (sandbox) Ask kage which provider ids it knows (#64) (5bcfee1)
- (sandbox) Use the google built-in provider id (#61) (d3d67c6)
- (session) Report a failed prompt as a failed turn (88d666d)
- (session) Push from a daemon-owned copy that borrows nothing (#102) (1df9f51)
- (session) Bound every read of a file the agent can grow (#100) (2e6eda5)
- (session) Refuse uploads that hold a secret, floor short tokens (#99) (a061819)
- (session) Wake a stopped thread only for who may take part (1ccb1b3)
- (session) Fetch a song the agent could only link to (da7cb43)
- (session) Tell the agent the image cap stopped its turn (#65) (746a943)
- (session) Interrupt turns that exceed the image cap (#63) (997f1ca)
- (session) Refuse symlinks when reading the agent session id (#59) (1ace712)
- (session) Keep a session alive while a tool call runs (65adcde)
- (session) Name the providers a shared model id is served by (0f48104)
- (session) Quote the failing line when a sandbox runs out of disk (206fc5a)
- (web) Name login cookies so sibling hosts cannot set them (ddd20b0)
- (web) Read projects and transcripts off the async workers (979fee3)
- (web) Ask again whether a visitor is still in the server (d34a4ba)
- (web) Harden the interface against strangers (012538b)
- (web) Show when each thing happened, not when it was replayed (bf7b611)
- Harden transcript links, bailey XDG and late provider keys (#109) (9935da9)
- Stop the agent memory reaching argv and name kills (759f05a)
- Resolve an image model to the provider that lists it (ad61174)
- Draw with the images endpoint, not a chat model ([29d046c](https://...
v0.3.1
v0.3.0
Features
- (chat) Take discord stickers as attachments (e442f96)
- (providers) Pass model sizes and broker anthropic keys (fb97456)
- (providers) Honor kind for custom kage providers (651adc5)
- Register kage plugins and leave them unbrokered by default (92bb231)
- Run sessions on kage rpc instead of pi (c4110ab)
Fixes
- (agent) Accept a resume answer without a session id (28f78e6)
- (pr) Open fork pull requests against the parent (ff9abe3)
- Run unconfigured tools without asking in sessions (f16179a)
- Render tool commands and whole spans of agent speech (6914dc0)
- Widen the session resolver to three public resolvers (02122a8)
Refactoring
- (agent) Drive sessions over kage ACP at pi parity (7402932)
v0.2.5
v0.2.4
v0.2.3
v0.2.2
Features
- (chat) Drop the bars from the !usage table (3051c91)
- (chat) Draw !usage as a bordered table with usage bars (a46bf13)
- (chat) Show !usage as a table with reset times in UTC (388f2ad)
- (issues) Listen only in chosen repositories, for chosen triggers (e772f7e)
- (issues) Run GitHub sessions in a chat thread beside the issue (24e6ade)
- (issues) Start sessions from GitHub mentions and assignments (c1f4b46)
- (log) Add -v, -vv and -vvv for debug, trace and wire logs (51642b7)
- (provider) Read several usage windows, a spent one first (941ddac)
- (provider) Read usage by declared shape, or where a mapping says (6a300f5)
- (provider) Ask providers for their models, with per-model overrides (01d0e64)
- (sandbox) Forward plain http on the allowed egress ports (ffe4c72)
- (session) Start on a fallback model when a window is spent (e623a16)
- (session) Let !pr name the repository with --repo (e21a540)
- (session) Tell the agent what came of its pull request (c2e8a9e)
- (session) Suggest diskTmp when a session runs out of scratch (1f1b02b)
Fixes
- (agent) Forward the provider's error to chat and the log (678b0ea)
- (chat) Write a GitHub login bare where it cannot be mentioned (61a1b61)
- (issues) Post only what a turn came to on the issue (1262828)
- (issues) Skip notifications with nothing new since the start (da04669)
- (sandbox) Tell a name that does not resolve from an internal one (5d61aaf)
- (sandbox) Give podman sessions the providers and extensions (6956e65)
- (sandbox) Keep every provider's real key out of a brokered session (c9144c7)
- (sandbox) Give every provider its key when egress is not brokered (937468a)
- (sandbox) Lay model entries over the agent's built-in definitions (07b1269)
- (sandbox) Honor tmpSize, shmSize and diskTmp under podman (7979aad)
- (sandbox) Start each launch on an empty disk-backed /tmp (971192b)
- (sandbox) Bound broker lookups and dials (6ec654a)
- (serve) Meter every z.ai provider, not only the default (88b8627)
- (serve) Broker built-in providers from the host's model store (55177d0)
- (session) Name a repository by its directory, not its GitHub name (9f9031e)
- (session) Find a repository cloned below the top of the session (8874abe)
- (session) Announce a model switch only once the agent takes it (075576e)
v0.2.1
Features
- (agent) Load pi extensions in the sandbox, and providers they register (816bbeb)
- (memory) Let the agent recall older facts on demand (a69829f)
- (sandbox) Let a session's /tmp be backed by disk (72dd7ab)
- (sandbox) Make the private /tmp and /dev/shm sizes configurable (011697b)
- (session) Say a resource-limited session can be continued (e290a1c)
Fixes
v0.2.0
Features
- (chat) Name the model on the opening line and every done (29ca800)
- (chat) Group what a turn took and what it spent (e5ffd5d)
- (config) [breaking] Describe every provider in one place (d87057a)
- (provider) Let a model say how hard it thinks (cf8f505)
- (session) Make the model listing something to type back (c0e31a9)
- (session) Say how long a turn waited and how long it took (6c6459e)
Fixes
- (config) Let the configured model name its provider (5700e87)
- (config) Report the search that actually happened (990d6c5)
- (daemon) Answer where the question was asked, not the channel (4d9da77)
- (pr) Open a pull request on the bot's own repository (a447f6f)
- (provider) Skip a malformed model store entry, not the daemon (d6c8f89)
- (session) Report the model a switch set, not the last turn's (01fef5d)
- (session) Say a thinking level apart from the model name (15cfb74)
- (session) Match an aliased model without its level (129251b)
- (session) Let a switch name a model on any configured provider (c280f8d)
Build
- Let vitepress put the site where cloudflare looks (e86c7b3)