Repository navigation
v0.18.0
Before you upgrade
- Memory modules are now context modules. The table, the agent column, the CLI group and the API paths all use the new name. The agents migration moves your rows across, ids included. Saved memory keeps its name.
- One
meetingstool replacesmeetings_searchandmeetings_series. An agent granted either old tool keeps the grant, but it does nothing; grantmeetingsinstead. GET /api/v1/meetings/{id}returns the whole meeting: its notes and every line. The bare row is now undermeeting.- Deploy workflows written before this release need
aegis deploy-cd-setup --forceto pick up the env push and rolling deploys.
Highlights
The meeting bot behaves in a room.
By default it answers only the meeting's owner. It stops the moment you tell it to ("stop", "be quiet", "never mind"), even mid-sentence. Talk over it and it goes quiet where the room last heard it; say "go on" and it picks up from there. It wakes within a fraction of a second of a caption naming it, and it answers in a sentence unless you ask for more.
Illiana reads a meeting whole
Ask about a meeting and she reads its notes and every line said, or a whole series with its meetings. Search now matches any of your words, best match first, so a question asked in full finds the lines that answer it. The transcript tab copies the call as plain lines, and the CLI gains meetings search and meetings series.
Calls in your own app
A live call now runs as the signed-in user, about what they're looking at, so your app's chat for its own users can take calls. A call that runs into a spent budget is refused. Between the end of your turn and the first word back, the call bar shows that it's working, so it no longer looks like it didn't hear you.
Context per subject
A context module can hold its own text for each subject, such as what a project is and who it's for. Each turn renders the text for the subject the app hands it. All modules' text for a subject loads in one query.
Illiana reviews your project's pull requests
Generated projects get an Illiana job in CI. It runs patterns check --strict on the changed files against the base branch's own findings and leaves one comment per PR. It fails the job only if you set ILLIANA_BLOCKS=true.
Deploys from Actions
The deploy workflow runs on a plain GitHub runner. aegis deploy-cd-env pushes your .env.deploy as a secret, so a deploy from Actions ships the production env. Deploys roll by default.
Leaner workers
The webserver keeps the twin in Redis, and workers read it from there instead of building their own. The idle meetings worker drops from 248 to 160 MB.
For developers
A new gated rule, parts.own-facade, flags a service reaching past its own facade from its router, tools, jobs, CLI or pages. Every service follows it. S3_PUBLIC_ENDPOINT_URL signs presigned links for an address a browser can reach, so "open the object" works in the dev stack.
Fixed
- A migration runs even when startup has already built its tables. Before, it failed on "index already exists", and every later
make migratefailed the same way. aegis addandaegis updatebring back an import that a merged block needs, so the merged module imports.- A required JSON list or dict column can be added to a table that already has rows.
make migrate-fixfills existing rows the same way, and a required boolean on Postgres works. - A pending change whose target has moved says why, and can still be rejected. If one approval fails, the rest still land.
- A submit button can no longer be silently given a second
type. - Postgres no longer logs a duplicate-key error for every scheduled job on start.
- The map no longer flickers while you hover a node.
The changelog lists every change.