Repository navigation
Releases
v0.8.37
0.8.37 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.37 nouride config check, with the volume your
compose file mounts.
A small release of fixes, for steadiness.
An agent keeps its full context window after a restart
Nouride learns each model's context window from the provider's own list of models, when the provider states one, as
Nougate and OpenRouter do. Until that list was back after a restart, and while it could not be read, a turn was sized
by a guess from the model's name: 200,000 tokens for Claude Opus 5.5, which Nougate lists at a million. The first
messages after every restart, the ones that waited while Nouride was down among them, ran in a fifth of their room. In
a long coding session that meant the conversation summed up early, and a file the agent had just read cut from it.
- What the provider last said is kept across a restart, and used until the provider says something new. While its
list cannot be read, it is used too, instead of the guess. - Only for the same address. A provider moved to another address starts from its new list.
- Nothing to set. A
context_windowin an agent's[llm]still wins over both.
Why a mission could not start is in the log
When an agent's mission call is refused (a start without the person's own words, a draft that is not its own, a file
outside the mission's folder), the agent is told why and tries again. The log said only that it failed. It now says
"mission call refused", with the agent, the chat, what was asked, and the words the agent was given.
Before you upgrade
Nothing to do first.
Full Changelog: v0.8.36...v0.8.37
v0.8.36
0.8.36 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.36 nouride config check, with the volume your
compose file mounts.
System: what your machine is using, and the files Nouride keeps
A box that was slow or full was found out over SSH. An admin now has System in the dashboard's menu, with four
tabs: System, Files, Update and Logs.
- System says what the machine is using right now, each figure a bar with a sentence beside it. RAM: how much
is in use of what Nouride may use, and who holds it, Nouride itself and the agents' commands. Disk: the disk
Nouride's files are on, how much is free, and how much Nouride's own files take, the largest folders first. From
three quarters full a bar says Getting full, from nine tenths Nearly full. A figure the machine does not
give is said as not known: it is never drawn as an empty bar. The version says which edition it is, Community or
Pro, and when a newer release is out a button beside it opens the Update page. - In a container the figures are the container's own. Where Docker, a pod or a service sets a limit on Nouride's
memory, the ceiling shown is that limit and the figure in use is the container's count, the onedocker stats
shows, not the machine's around it. The disk is the volume Nouride's files are on. - Files shows what Nouride keeps on the machine: its agents, their workspaces, what people sent, its settings.
Open a folder with a press; a file opens as what it is, a page of markdown as a page, code in its colours with
Copy, a picture as a picture, a video or a sound in a player. A PDF opens in the browser's reader, in a tab of
its own. On a wide window the list and an open file scroll inside the card, and where you are stays in view. - Download keeps a copy of the open file on your own computer. A file that cannot be shown on the page says so,
with the button in its middle. - Delete clears what agents and chats left behind: what is in the agents' workspaces, the files people sent in a
chat, the long output a tool kept, and the logs of background jobs. The page asks first, naming how many files and
how much of the disk would go. Nouride's own files have no such button: its settings, its database, its agents'
persona and memory files, and the folder it keeps for each agent. While a mission or a background job is still
working in a folder, that folder waits until it has ended. Each delete is written to the audit log, with who did it. - Credentials and secrets are not shown in Files. What holds one is left out of every list, by its name too:
Nouride's own keys and its secret store, the credentials folder, a chat app's session,.envfiles, SSH and other
keys, and the sign-ins tools keep in the agents' home. Asked for by its address, such a file says it is kept
private. Inside an ordinary file, something that looks like a credential is hidden where it was, and a file like
that is read on the page and not downloaded. The database is listed with its size, and neither opens nor
downloads. - A path is a link. Where an agent writes a path inside Nouride's files, in a reply, among a mission's result
files or in a command a turn ran, an admin can press it to open that file in Files. The folder a mission works in,
on its page, opens the same way. - Update is a tab of System for an admin, where it was a card on Settings; anyone else still finds it there.
Your box, at the foot of the menu, opens it when pressed, a newer version out or not. - Logs is the page it was, now a tab here for an admin. Anyone else still finds it under Settings, with the two
tabs they had.
On a Mac the page says how much RAM there is and not how much is in use: macOS keeps no figure of what could still be
handed out, and the one it does keep reads nearly full on a machine with room to spare.
Where a key comes from, and whether it will charge you
Adding a model provider asked for an API key and said nothing about where one comes from. On the Models page and
in the first-run setup, How to get an API key now folds out under the key's field.
- Eight services people most often mean: OpenAI, Anthropic, Google Gemini, DeepSeek, Z.ai, OpenCode Zen,
OpenCode Go and Command Code, each a link to the page its key is made on. - Each says what using it costs. Pay per use: charged by use, apart from any chat subscription (a ChatGPT or
Claude subscription does not cover the API). In your plan: OpenCode Go, which stops at the plan's limits unless
you turn on Extra Usage there, and Command Code, whose plan includes the key and stops when its credits run out,
on every plan but Go. - Use it on a line fills the provider's name, how it is talked to and its address. A name you typed yourself is
kept, and a provider that is already saved keeps its name.
Extra headers, for a provider that asks for more than a key
A provider's form has Extra headers under the key's field, on the Models page and in the first-run setup: one on
each line, as Name: value. Most providers ask for nothing, and it stays folded.
- OpenCode Go works. It refuses any request that does not say which conversation it is for, so a provider on a
Go subscription answered nothing. Use it for OpenCode Go fillsx-opencode-session: {session}, and Nouride
writes an id of the conversation where a value says{session}: the same through a conversation, holding no chat
id, name or number. - Every line is yours: change it, add one, remove one. In
config.tomlthey are the profile'sheaders. - A saved header shows its name only. Its value is not sent back to the page; a line left as it is keeps it.
- The key stays in the key's field. The form does not take
Authorization,x-api-keyorContent-Type. - A plan is not shown as money spent. A provider on OpenCode Go or Command Code is counted in tokens, and its
use is left out of the daily cost cap. - Requests say they come from Nouride. Every request to a model says
user-agent: nouride/<version>, where it
said the HTTP library's name before. Auser-agentin a profile'sheadersreplaces it.
A new agent follows the install's provider
Every agent made from the dashboard named its provider profile in its own pack. The day an install moved to
another profile, each of those agents named one that no longer existed and stopped loading, until every pack was
edited by hand (#18).
- The first agent's provider and model are recorded as the install's, under
[llm.defaults], and its pack
says neither. An agent that says nothing follows the install when its provider changes. - An agent made with another provider or another model says both in its own pack, as before: it is different
on purpose. - Defaults you set are never written over. A key you left empty is filled in only by an agent that agrees with
the ones you set; an agent made with another model than your default keeps its own, in its pack. - An agent that does not load leaves nothing behind: what was recorded for it is taken back with its pack.
Agents you already have are untouched: their packs say what they said.
What nothing pointed at any more is cleared
The daily clean-up went by Nouride's records: a job's log went with the job, a mission's own folder a week after
the mission ended. What no record named was never looked at again, and stayed.
- A job's log that no job points at is deleted with the old ones, after
[retention] job_log_days(three days
unless you set it;0keeps everything). - A mission's own folder whose mission is no longer on record is deleted once it has gone a week untouched.
Never one that holds work nobody committed: that one is named in the log, and stays.
The log says what made a conversation cost more
A model's provider keeps the front of a conversation, so the next request pays a fraction for what it has read
before. That only holds while the front stays the same: when something in it changes, everything after it is paid
for in full again, the whole conversation with it. Nouride knew when that had happened and not why.
- When a part of what is sent in front of a conversation changed since its last request, while the provider
would still have had it, one line in the log says which parts: the tools, the model, or a section of the prompt
by its name (the agent's memory file, what it knows about the people in the chat, its skills), with how much
conversation is written again. Names and a size, never what a part holds. An admin finds the lines under
System, Logs, by searching forcached prefix.
Nothing an agent reads or does changes with it. What the lines show on a real install decides what is moved or held
still in a later release.
Before you upgrade
Nothing to do first. What is different after it:
- Logs and Update have moved for an admin: from Settings to tabs of System, in the menu. Their addresses are
the same, so a bookmark still opens them. - The first clean-up after the upgrade deletes what the earlier ones left: job logs older than
[retention] job_log_daysthat no job points at, and missions' own folders, a week untouched, whose mission is no
longer on record. Look injobs/and in each agent'smissions/folder first if you keep anything there by hand. - New lines in the log when a conversation's cached front changed: they name what changed, and change nothing.
- A provider on OpenCode Go or Command Code is written
billing = "included"at the first start, once, unless
its profile already say...
v0.8.35
0.8.35 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.35 nouride config check, with the volume your
compose file mounts.
Automations and missions are each person's own
- Each person's automations and missions are their own. Every account used to see and change every automation and
every mission. Now each one belongs to a person: an automation to whoever made it on the dashboard or turned it on
after an agent proposed it, a mission to whoever started it, from a chat or from the Missions page. A mission an
automation starts belongs to that automation's owner. The Automations and Missions pages show your own. - What reports to your chat, you can read. An automation or a mission of someone else's that reports to a chat of
yours is on your page too, saying whose it is. You open it and read its steps and its runs, and you cannot change it. - An operator or a viewer sees no one else's, not in the lists and not by its link: Nouride answers as if it were
not there. The conversation an automation or a mission keeps of its own is held the same way, where every account
could read it before. - An admin sees everyone's, and picks whose in a dropdown beside the search, as on Chats: their own, everyone's set
apart by person, one person's, or the ones that are nobody's. While the page shows an admin's own, it says how many
more there are. On an automation's page an admin hands it to a person, or to nobody. - Only its owner or an admin changes one: edits, runs, pauses or deletes an automation, answers a step that waits,
and tells, stops, continues, accepts or deletes a mission. One an agent proposed is the exception: whoever may open
the chat it was proposed in says yes, and it becomes theirs. A change an agent proposes to an automation that is
already there is its owner's or an admin's to say yes to. - A webhook's address is shown only to whoever may change it.
- This is about the pages. An agent still answers from every automation and mission it has, whoever made them: two
people who must not learn of each other's work want two agents.
A conversation's model, picked on its page
- Pick the model and the effort for a conversation from the dashboard.
/modeland/effortwere the only way,
and a command is easy to miss. The bar over a conversation with one agent now has a button with the model's name:
pick another from the list or type its name, and pick how long the model thinks. It is for that conversation only,
from your next message; everywhere else the agent keeps its own, and Back to the agent's own undoes it. The
commands still work, and each reads what the other set. /modelreaches an agent a coding CLI answers. For an agent answered by Claude Code or Codex,/modelsaid the
model was changed and nothing was. The conversation's choice is now set on its own CLI session, among the models the
CLI offers.- A sign-in code sent to Claude Code is taken at once. Signing a Claude Code account in from the Models page or
an agent's page, the code you pasted and sent sat in the terminal as stars until Enter was pressed by itself. Send
now sends it. If a sign-in ever sits there again, the note under the field says to press Enter first. - A conversation that begins with
/modelis yours at once. On an install with several accounts, an operator who
typed/modelas a conversation's first message could not open that conversation again until an agent had answered
in it.
Mockups, as a skill
- A new built-in skill,
mockup-design. Ask an agent to mock up a screen, a page or an app and it first asks how
you want it: a link you can open and click, pictures, pictures inside a phone and a laptop, or the HTML file. It
writes the mockup as HTML, draws it in a real browser at a desktop's width and at a phone's, measures what can be
measured (a page that scrolls sideways on a phone, text too small or too faint, a button too small for a finger,
text cut off or drawn over other text) and looks at the pictures itself, for up to four rounds, before it sends
anything. A change you ask for is made in the mockup you saw, and the earlier one is kept. - It has no look of its own. The skill names no colour and no font and ships no template: a mockup's look comes
from what you said, from your brand or the site it is for, or is chosen for that request. The motion-graphics
skill's example no longer names a font or colours either. - It needs a browser, so it draws on machines that can run one. On a board too small, it says so first, and can
still send the mockup as a link or a file that nobody has looked at. - Each thing its checker finds says where the fix is: the element, what causes it, and the line of the mockup's own
file and of its style rule.
Automations that watch
- A step can go on only when something changed. A check that runs every ten minutes told you the same thing every
ten minutes. Mark a step, and what it said is compared with what it said last time: the same again, and the run ends
there quietly, with no agent woken and nothing sent. So a disk check tells you once when the disk fills, and once
when it is fine again. - An automation can tell you once, and then turn itself off. "Tell me when the build is done" went on telling
after it was done. With Tell me once, then turn off, the automation turns itself off after the first run that
tells you something, and its page says so. Turn it on again to be told once more. - Quiet hours. One setting for the install, on the Automations page: two times of the day between which what
automations would say to a chat is kept. They still run. When the hours end, each chat gets one message with every
automation that had something to say, the ones that failed first. A question a step waits on is asked then too. An
automation marked Tell me at once, even in quiet hours, and a run you start by hand, are said whatever the hour.
While something is kept, the page says how many messages are waiting, and until when. - A script in front of a webhook. When the first step of a webhook's automation is a command, the command is
handed what the caller sent, on its standard input. What it prints goes on to the next step, and printing nothing
ends the run: a script decides which calls are worth an agent's turn, at no model cost for the ones that are not. - Ask an agent for a watch. "Kabari aku kalau disk lewat 90%": the agent proposes a check on a clock that speaks
only when what it found changes, and its card says so in words before you turn it on.
An automation you turned on is not asked again
- Turning an automation on is your yes to what it does. A run used to be held, whatever your approval level, for
a message to any chat but the one the automation was made in. So an automation asked for from the dashboard, "a news
digest on my WhatsApp every morning", wrote its digest and then could not send it, and its page offered Always
allow for this job for a yes you had already given by turning it on. A run now sends what its automation sends,
and nothing is held. What earlier runs kept of that hold is taken off them, so no old run shows it again. - An automation's results can go to another chat. Ask an agent for "and send it to my WhatsApp" and it names that
chat in what it proposes. The card you turn on says where each run's result is sent, and so does the automation's
page. The run reports there itself, with no message of its own to send. - The second look is off on automations unless you choose it. It is the check that weighs, once an agent has read
a web page or a mail, whether what it sends next fits the work, and it could hold a run for the same second yes. It
looks at missions as before. To keep it on an agent's automations, choose Always look on the agent's Access
tab, or name a model in[security] model_guard.
Code, several files at once, and content
- Code in a reply is coloured, and copied with a press. In the dashboard's chat a block of code was one grey box,
and a command to run had to be selected by hand. Each block now has Copy at its top, and its words are coloured
by its language in the theme's own colours, light and dark. A block that names no language stays plain: nothing is
guessed. What colours the code is fetched only when a reply has code in it. - An agent sends several files as one. Files that belong together, the slides of a carousel or the pages of a
scan, used to arrive one message each. An agent now sends them in one go, in order: as one album on Telegram, as
one message on Discord, and one after another on WhatsApp and in the dashboard. Every file is checked before any
is sent, so a set arrives whole or not at all. - A new built-in skill,
carousel. Ask an agent for a carousel and it first asks where it is posted, which
decides the shape of every slide: the feed's portrait, a square, a taller portrait, or a full phone screen. It then
sends the words slide by slide, each fact with where it comes from, and waits for your yes: the first slide that
makes someone stop, one idea a slide, a last one that says what to do. Only then does it draw: every slide in one
HTML file, at the platform's exact size, measured for a phone (text too small once a phone shows it, text cut off
or off the slide, text too faint, an emoji this machine cannot draw) and looked at as one set, for up to four
rounds. You get the slides as one album in order, the caption as text to copy, or a PDF for where a carousel is a
document. Likemockup-design, it has no look of its own and...
v0.8.34
0.8.34 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.34 nouride config check, with the volume your
compose file mounts.
Automations
- Schedule and Webhooks are one page now: Automations. Work → Automations lists everything that runs on its own,
whatever starts it: on a schedule, when a webhook is called, or when you press Run now. One dropdown beside the
search shows only the scheduled ones, the webhooks, or the ones you start by hand. Your schedules and webhooks are
all there, as they were. - An automation can be several steps in a fixed order. Send a message, ask an agent, run a command, start a
mission, wait for your OK: as many as you need, in the order you put them. Nouride runs them in that order every
time, hands each step what the one before it said, and an agent does only the step it is given. Before, work in
several parts was one paragraph an agent carried out its own way each time. - A step can send the run somewhere else. When a step is done, when it failed, and when it had nothing to say, the
run goes on to the next step, ends there, or jumps to a later step. So a check can end quietly while all is well,
and only wake an agent when something is wrong. A run only goes forward, so it always ends. - A mission can be a step, anywhere in the list. The automation waits for it, however long it takes and across a
restart, and hands its result to the next step. - A step can wait for your OK. The automation's chat gets the question, what the step before said, and Continue
and Stop. The same question is under Waiting for you. Nothing after it runs until you say yes; a no, or no answer in
time, ends the run there without calling it a failure. - An automation you start yourself. One with no schedule and no webhook, for work you want on a button.
- The steps are drawn, and a run is drawn over them. Each step is a card: press it to change it, drag it to move
it, press the plus to add one. While it runs you see which step is at work, what each one said, and which path the
run took. - An agent can make one for you. Ask in a chat, and the agent proposes the automation with all its steps. It
stays off until you turn it on, and a change an agent proposes to one that runs waits on its page as Suggested, with
Accept and Discard.
A chat on every page
- Talk to an agent from any page. A button on every page but Chats opens a small chat with one agent, the same
conversation you have with it in Chats. The agent is told which page you are looking at, so on an automation's page
"add a step that tells me on Telegram" is enough. - The Ask buttons open it. A page's Ask button no longer takes you to Chats: it opens the chat where you are, with
its message filled in for you to change or send. One automation's page has one too, for a change to that automation. - Start a new conversation there. The chat opens on your newest conversation with the agent. The speech bubble
with a plus, at the top of the chat, starts a new one. - The page follows the agent. Ask for an automation from the page that makes one, and what the agent proposes
opens there by itself, its steps drawn. On any page, what the agent made or changed shows without a reload, and a
button under its answer opens it. - "Take me there." In that chat the agent knows the dashboard's pages, so it can answer with a link to one. The
link opens the page under the chat, in the same tab. In every chat on the dashboard, a link to one of its own pages
is now a link you can press: it was drawn as plain words. - An answer that arrives in one piece is still written out. Some models say nothing while they work and hand
the whole answer over at the end. The chat showed that as nothing, then everything; it now writes it out like any
other answer, and follows it down as it does. - A chat keeps you at the newest message. Sending a message takes you to the end of the conversation, wherever
you were reading; it used to leave you where you were, with your own message out of sight. A long answer no longer
makes the chat stop following it. On the Chats page, a small arrow at the foot of the conversation takes you back
to the newest message once you have scrolled up.
From the command line
nouride cron add --steps <file.json>andnouride cron update <id> --steps <file.json>take a list of steps from a
file.--manualmakes an automation you start yourself.nouride cron runs <id>says how each step of a run went,
andnouride cron continue <run id>orstop <run id>answers a run that waits for a person.
A group, or a topic, for one agent
/mention @YourBotgives a group to one agent. In a group with several of your agents, a message that tags
nobody was always the orchestrator's. Now an admin can type/mention @NovelistBot(or the agent's name) in the
group, and that agent answers every message there that tags nobody. In a Telegram group with topics, each topic can
have its own agent. A tag and a reply still go to whoever they name./mention requiredreplaces/mention on, and/mention offis gone from the help: one setting now says
both whether a tag is needed and who answers without one. The old words still work./mention@YourBot, as Telegram's command menu writes it, is answered by that bot. It was answered by the
orchestrator, which read as the wrong agent taking over. The answer says how to give the group to that agent.- The same choice is on the Groups page: one list per group, "who answers a message that tags nobody".
- An agent keeps one conversation in a group. Where several of your bots sit in one group, a message that tagged
nobody, or named an agent in its words, could be answered in a conversation kept under another bot, apart from
the one the agent has when it is tagged, so it did not remember what was just said. It is one conversation now. - A command written with a bot's tag in front (
@Nox /status), as on Discord, is answered once, as a command.
With several bots in the channel it could reach the agent as an ordinary message instead. /secret undoin a group of several bots puts the message back for the agent that answers there. It was
read again in a conversation kept under another bot, and in a Telegram group that is not a supergroup, by nobody.
Models that take no temperature
- Claude Sonnet 5.5 and Claude Haiku 5.5 answer again on Anthropic's own API. Nouride sends a temperature with
every request, and these models refuse one, so every message to an agent on them got "Something is wrong with how
I am building requests". A model that refuses the temperature is now asked again without it and sent none from
then on, on any provider. Summaries of a long conversation and what an agent learns from its chats failed the same
way, and work again too. Nothing to set: the temperature in your settings still reaches every model that takes one.
A new install asks less
- A new install is
balancedthroughout. The agents setup makes were alreadybalanced: they run by
themselves and ask only before the few things that matter (changing settings, giving someone access, stopping
Nouride, replacing a stored secret, a credential leaving the machine, changing its system packages). The level
for the install as a whole, which an agent that sets none of its own falls to, was writtencareful, and is
balancednow. An install you already have keeps what its settings say.
Before you upgrade
Nothing to do. Every schedule and webhook is on the Automations page as an automation of one step, with the same
address, the same history and the same nouride cron and nouride webhook commands. Links to the old Schedule and
Webhooks pages open Automations.
Full Changelog: v0.8.33...v0.8.34
v0.8.33
0.8.33 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.33 nouride config check, with the volume your
compose file mounts.
Agents that know what the others are doing
- An agent in a room knows what the other agents there are doing. When you ask one, it is told which of the others
are at work in that room, on which request and for how long, and which are asleep. Before, it knew who shared the
room and what each was for, and nothing about what they were doing at that moment. - And what else is running on the box. Its own work in other chats, helpers, missions and background commands
with their folder, six at most and the rest counted, so it can wait or work somewhere else before it starts a build
beside another one. Work somebody else asked for in a private chat is named without its words. This tells the
agent and locks nothing. - Work handed to a busy agent is no longer lost. When one agent tagged another that was already at work in the
room, the room was told to ask again and the work stopped there. Now the hand-over waits: the room is told once,
and the busy agent takes it as soon as it is free. Two hand-overs from the same agent become one turn. A message
from a person to a busy agent is answered as before. - A way on when work stops in a room. When agents have gone back and forth as many times as allowed, the line
that says so has a Continue button. When an agent that was handed work fails or runs out of time, its line has
Continue and Hand to another agent of the room. On Telegram and Discord these are buttons; elsewhere the
line says the same in words. Anyone who may talk to that agent in the room can press, once.
Fixes
- In Chats, an admin no longer sees their own name beside Mine. The dropdown that picks whose chats to list
offered "Mine" and, among the people, the admin's own name: two choices for one person. Your own name is left out
now, and a choice of it kept from before opens as Mine. - A chat's progress line no longer says a reply is being written while the agent prepares another step. After a
step, an agent that said a few words and then wrote a long command to run had its line read "writing a reply" for
as long as that took, and then ran another step. The line now says "writing a reply" only while the reply's text
is arriving, "preparing the next step" while a command is being written, and "thinking" the rest of the time.
Before you upgrade
Nothing to do. An agent's messages get one or two short lines only while something else is at work, and the fixed
part of its prompt is unchanged.
Full Changelog: v0.8.32...v0.8.33
v0.8.32
0.8.32 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.32 nouride config check, with the volume your
compose file mounts.
Changes
- Each person's chats are their own. Every account used to see every chat. Now each account sees its own: its
conversations with each agent in the dashboard, its private chats with the agents on Telegram, Discord and WhatsApp
(through the person it is under People), the groups that person spoke in, and the rooms it made or spoke in. Two
accounts talking to the same agent each have their own conversation now. - An operator or a viewer sees no one else's chat, not in the lists and not by its link: Nouride answers as if the
chat were not there. An admin still opens every one, and picks whose in a dropdown beside the search, in Chats and in
an agent's History: their own, everyone's set apart by person, one person's (found by typing part of their name), or
the chats of people not yet in People. - Every account is someone in People. Making an account asks who it is: someone already in People, or someone new,
named after the account. Each account made before this gets a person of its own when Nouride starts. None is matched
to an existing person by its name, so if an account is someone you already had in People, link it to them on Users. - Scheduled jobs' conversations and missions are not held by person yet: everyone sees them as before.
- Router is no longer offered as an install. Install Community and turn Nougate on from the dashboard.
install.sh --variant router, still accepted, now downloads Community's own files and switches Nougate on. A Router
install you already have keeps updating onto Community, as before.
Fixes
- A few everyday programs no longer run unasked with a flag that does more than read.
rg --preand
--hostname-binran a program of the agent's choosing without a question at any approval level,tree -ocould
overwrite a file such as~/.profile, anddate --setcould set the clock. With such a flag, the command now asks
like any new one. A credential path inside a shell's script (bash -lc "cat .env") now asks as the same read
written as a command does. Found by a review that ran Nouride's own decision on these commands. nouride policy checktells an everyday program apart. It said every command off the fixed list asks once at
careful,rg -nincluded. It now says an everyday program runs at every level without asking, and that one with a
flag that writes or runs something asks.
Before you upgrade
With one account, nothing you see changes. With several, each one's chats are its own from the first start. A chat
from before is its person's when Nouride can tell who started it; one it cannot (its turns gone with their retention)
is an admin's to see, under Not known.
Full Changelog: v0.8.31...v0.8.32
v0.8.31
0.8.31 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.31 nouride config check, with the volume your
compose file mounts.
Fixes
- On a phone's browser, the dashboard is as tall as the screen you see. It was as tall as the screen with the
browser's toolbar put away, so the foot of a page sat under the tab bar: the Chats list could not be scrolled to its
last rows, and a tap on a tab sometimes did nothing, because the browser took it to bring its toolbar back. A tall
dialog ends above the toolbar for the same reason. - A message that pops up at the foot of a phone's screen stands above the tab bar, where it lay over Agents and
More and took their taps while it showed. - The server and the dashboard agree on every answer. A check that runs when Nouride is built now holds each
answer the dashboard reads to what the server sends. The mismatches it found are fixed: a schedule answers with
when it runs after it is made or changed, saving the web-search settings answers with whether a restart is waited
on, every row of the audit log carries its id, and a room, a schedule or an account that is gone is said to be
gone where the page was handed nothing. - Review now, on Skills, waits for the review to finish. A review takes a few minutes; the page gave up on it
after fifteen seconds and said Nouride was probably restarting, while Nouride was running the review and answering
everything else. The page now waits for the review, and a single slow answer no longer reads as a restart: the
page says so only when Nouride itself is not answering. - Explore, on Skills, ends with room under its last skill, as every page that scrolls does. Its list ran down to
the very foot of the window. - A build made from the source carries the built-in skills as they are in the repository, without the cache files
Python leaves beside a skill's scripts. Released builds never had them.
Changes
- The
nouridecommands work as before. The code behind the ones that ask a running Nouride (status,chat,
agentsand the rest) now lives in a part of its own, apart from the daemon's, so a change to one cannot reach into
the other. Every command, its options, what it prints and its exit codes are the same, and Nouride is still one
program of the same size.
Full Changelog: v0.8.30...v0.8.31
v0.8.30
0.8.30 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.30 nouride config check, with the volume your
compose file mounts.
Agents that work together by default
- An agent knows the machine it runs on. Its cores and memory, and how many helpers and missions may run at once,
are part of what every agent is told, with what is running right now. An agent on a small box no longer starts four
builds at once because nothing told it the box was small. - Up to four helpers and four missions at once, lowered by the machine. Where you set no number, both follow the
machine: four on a box with the cores and memory for it, fewer on a small one (one on 2 GB, two on 4 GB). A number you
set in the configuration or on the dashboard is kept. Before, it was two helpers on every machine, and missions by
the number of agents. - One agent asks several others at once. The orchestrator can hand a piece of work to three agents in one step:
they work at the same time and their answers come back together. Before, it asked them one after another. - Agents are told when to work in parallel: parts that do not depend on each other at once and in the background,
parts that do in order, and heavy commands one after another on a small machine.
New
- After a long outage, an agent asks before it carries on. A turn cut off by a restart is carried on by itself only
if Nouride is back within 15 minutes. After a longer outage (a power cut, say) the chat used to hear nothing; now it is
asked once, "I was cut off 1 hour ago while working on … Say "continue" and I will pick it up", with a Continue
button on Telegram and Discord. Nothing is carried on by itself after that long. - The dashboard shows what is loading as its shape, where a spinner stood: a page, a card, a chat. A list no longer
shows "nothing here" for a moment before its content arrives. The cat is in more places: beside page titles, in empty
lists, and a different one each time you open Home. - A way to the community: Settings has Community beside Documentation, Nouride's Discord server, and
nouride.com's footer links to it too.
Changes
- Requests to OpenAI's and Anthropic's own APIs say which agent and conversation they are for, so the provider's
cache is reached more often and a long conversation costs less. What is sent is the agent's id and a code for the
conversation that holds no name, phone number or chat id. Nouride adds the setting (identify = true) to a provider
on those two addresses at the first start; setidentify = falseto keep it off. - Long turns keep the provider's cache. When a long piece of work fills the conversation, old tool output is set
aside in one go, where it was set aside a little on every step, which made the provider read the whole conversation
again each time.
Fixes
- On a phone, the tab bar takes every tap. With More open, the bar was covered by More's sheet, and for a moment
after choosing a page a tap on a tab could open something else. On a phone, More lists Settings as one line; its pages
are on the Settings page. - Deleting a second conversation works. After one conversation was deleted, from History or from a chat's menu,
Delete on the next one did nothing until the page was reloaded. - Every page has room under its last card, on a phone and on a computer, so the tab bar or the window's edge no
longer sits on the last line. On Home the Chat button no longer covers the last card. - A promise to try again survives a change of wording. A turn that ended on a provider error and promised a retry
is found after a restart by a mark on the turn, where it was found by the sentence it ended with. - A turn lost in a crash is not carried on hours later by a second restart.
Full Changelog: v0.8.29...v0.8.30
v0.8.29
0.8.29 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.29 nouride config check, with the volume your
compose file mounts.
The first start of 0.8.29 rebuilds one table of the database, the record of what people say in groups. It backs the
database up first and takes a moment; nothing in it is lost.
A new chat page
- One list beside the conversation. Your orchestrator is always first, then the agents and rooms you talked to,
the latest first, each with its cat, the last thing said and when; agents you have not talked to yet wait at the end.
Opening an agent carries on its latest conversation. On a phone the list comes first and a conversation takes the
whole screen. - Groups, beside Chats: the groups your agents are in on Telegram, Discord and WhatsApp, one line per group however
many of your bots sit in it, each tagged with its app in that app's colour, and the rooms you made in the dashboard.
A chip per app narrows the list, Dashboard to your rooms, and groups quiet for two weeks fold into one line.
Pin to Chats keeps a group you read often in Chats. - Anything from a chat app is read-only here, and says so where you would type: groups and your agents' private
chats on Telegram, Discord and WhatsApp are answered on their own app. People there show on the left under their
names, and a group shows what people said even when no agent answered. - History belongs to each agent: a drawer with only that agent's conversations, its private chats on chat apps
among them. Each row has a menu that deletes the conversation. - Each agent has its own colour and its cat beside its answers, and a tag like
@nixis drawn in that agent's
colour wherever it is written. On Discord a tag reads as the agent's name, not as the code Discord writes. - An agent's steps fold into one line while it works: what it is doing now, how many steps and for how long. Press
it to see them. An answer that took no steps and under a second says instant. - The side menu folds to its icons on Chats, to give the conversation room; Expand opens it again and is
remembered. - The dashboard installs as an app. Over HTTPS, Chrome and Edge offer Install; on an iPhone, Share → Add to Home
Screen. It opens on Chats with the mascot's head as its icon. On an iPhone you sign in once inside it.
Changes
- A room you made in the dashboard answers a message that tags nobody: your orchestrator when it is in the room,
or the room's only agent. The setting that makes groups on chat apps wait for a tag (groups_require_mention) no
longer silences your own rooms;/mention onin a room still does. In a room your orchestrator is not in, it no
longer answers.
Fixes
- OpenAI's newer models work with an OpenAI API key. GPT-5 and later refused every reply with "Unsupported
parameter: 'max_tokens'", and the conversation's compaction failed the same way. Nouride now sends
max_completion_tokensto OpenAI's own API, and adds the setting that says so to an existing provider on it at the
first start. Other OpenAI-compatible services (OpenRouter, Ollama, Nougate) are left as they were. - A group's messages are no longer lost to another group's. Telegram numbers messages per group, and a message
with the same number in a second group was dropped from what your agents remember of it; with two of your agents'
bots in one group, the second one's record missed lines too. - A group opens at its newest message, not its oldest, and an agent that answered in a group is listed among its
agents.
Full Changelog: v0.8.28...v0.8.29
v0.8.28
0.8.28 updates from 0.8.0 or later. From 0.7.x, start 0.8.0 once first:
Upgrading to 0.8 has the way across.
On Docker, check your configuration with the new image before you switch:
docker run --rm -v ./nouride:/app/.nouride ghcr.io/nouverse/nouride:0.8.28 nouride config check, with the volume your
compose file mounts.
One edition: Router is part of Community
- Every Community install now carries the Nougate LLM gateway, switched off until you ask for it. Setup offers
Use Nougate at its provider step: choose it and the gateway starts at once, without a restart; skip it and it
stays off and costs next to nothing. Later, Settings → LLM Gateway turns it on, or off (Nouride restarts once
nothing is running). - A Router install moves to Community by its own update, with Nougate kept on. Until 0.9 every release is also
published under Router's old names, sonouride updateand the old install command keep working. If you run the
nouride-routercontainer image, it keeps updating too, and its dashboard says to switch your compose file to
ghcr.io/nouverse/nouride:
coming from nouride-router.
New
- Nougate learns each account's models from the account itself. Codex, Claude Code, Copilot, Kiro and Antigravity
are asked which models they serve when Nougate starts, when an account is added, and every six hours, so a new model
shows up in your agents' model list without an update (GPT-6 Luna on Codex, for one). The last list is kept, so a
restart or an outage does not empty it, and an agent set to a model the list does not show is still sent there: the
provider decides. - Exa as a web search service, beside Brave and SearXNG: pick it on the Web Search page and paste its key.
- A model field opens its whole list from the arrow at its end. Before, a field that already held a model showed
only that model until you deleted its name. - The mascot's look for the Office: a tuxedo coat, a helmet and photochromic glasses join the look words, and a
new Nourider starts dressed as the mascot.
Changes
- Helpers an agent waits for move to the background after 45 seconds. Work handed to a helper without
backgroundused to hold the chat until it was done, eight minutes once; now the agent waits 45 seconds, and a
helper still working carries on in the background and reports when it finishes. Asking another agent does the same,
after 45 seconds instead of a minute. - LLM Gateway sits above Models in Settings.
- Copilot no longer offers GPT-5.6 and GPT-6. Copilot serves them only on a connection Nougate does not use yet,
so picking one failed every time; reach them through Codex.
Fixes
- A reply that streams for more than two minutes is no longer cut off. The two-minute limit was meant for a
provider that never answers, and it also ended long answers that were arriving fine. - A long piece of work that writes many files no longer fails near its end for want of room: the text of files it
wrote earlier in the same turn is set aside once the conversation fills, as earlier tool output already was. - Stopping a turn frees the chat even when a tool does not stop. A tool stuck on a dead connection could hold the
chat until Nouride restarted; now the turn ends a few seconds after you stop it. - A provider's answer cut off before any of it arrived is asked again once on the same model, before the next
model in the agent's list. - "I'll try again in a few minutes" survives a restart. A turn that ended on a provider error and promised a retry
is retried after Nouride starts again, once. - A backup search service uses its own key. With Exa or SearXNG first and Brave as the backup, Brave was sent the
first service's key and refused every search; a backup with no key of its own is now skipped, andconfig check
says so. Search errors say what they mean: a key not accepted, no credit left, too many searches.
Full Changelog: v0.8.27...v0.8.28