Skip to content

Releases

v0.8.37

Choose a tag to compare

@nouva-ai nouva-ai released this 14 Nov 11:59
233569c

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_window in 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

Choose a tag to compare

@nouva-ai nouva-ai released this 14 Nov 09:44
212f021

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 one docker 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, .env files, 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 fills x-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.toml they are the profile's headers.
  • 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-key or Content-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. A user-agent in a profile's headers replaces 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; 0 keeps 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 for cached 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_days that no job points at, and missions' own folders, a week untouched, whose mission is no
    longer on record. Look in jobs/ and in each agent's missions/ 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...
Read more

v0.8.35

Choose a tag to compare

@nouva-ai nouva-ai released this 13 Nov 18:51

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. /model and /effort were 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.
  • /model reaches an agent a coding CLI answers. For an agent answered by Claude Code or Codex, /model said 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 /model is yours at once. On an install with several accounts, an operator who
    typed /model as 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. Like mockup-design, it has no look of its own and...
Read more

v0.8.34

Choose a tag to compare

@nouva-ai nouva-ai released this 12 Nov 18:48

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> and nouride cron update <id> --steps <file.json> take a list of steps from a
    file. --manual makes an automation you start yourself. nouride cron runs <id> says how each step of a run went,
    and nouride cron continue <run id> or stop <run id> answers a run that waits for a person.

A group, or a topic, for one agent

  • /mention @YourBot gives 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 required replaces /mention on, and /mention off is 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 undo in 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 balanced throughout. The agents setup makes were already balanced: 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 written careful, and is
    balanced now. 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

Choose a tag to compare

@nouva-ai nouva-ai released this 11 Nov 18:13

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

Choose a tag to compare

@nouva-ai nouva-ai released this 11 Nov 15:26

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 --pre and
    --hostname-bin ran a program of the agent's choosing without a question at any approval level, tree -o could
    overwrite a file such as ~/.profile, and date --set could 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 check tells an everyday program apart. It said every command off the fixed list asks once at
    careful, rg -n included. 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

Choose a tag to compare

@nouva-ai nouva-ai released this 11 Nov 09:38

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 nouride commands work as before. The code behind the ones that ask a running Nouride (status, chat,
    agents and 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

Choose a tag to compare

@nouva-ai nouva-ai released this 10 Nov 18:16

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; set identify = false to 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

Choose a tag to compare

@nouva-ai nouva-ai released this 10 Nov 05:20

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 @nix is 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 on in 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_tokens to 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

Choose a tag to compare

@nouva-ai nouva-ai released this 09 Nov 20:09

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, so nouride update and the old install command keep working. If you run the
    nouride-router container 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
    background used 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, and config 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