Repository navigation
Releases: hallettmiket/murmurent
Release list
murmurent 2026.11.0
To upgrade: uv tool upgrade murmurent, then murmurent install --hooks,
then restart Claude Code and the dashboard (⏻ Stop dashboard, then start
it again). From a copy of the repository: git checkout main && git pull
first, then the same two steps. The install re-links every ready repository
itself; nothing else to run.
This release is the outcome of a review of how repositories, projects and
membership work (docs/repos_and_projects_plan.md, issues 252 to 260, 269).
The rules it settles: a repository may belong to several projects; membership
of a project means access to every repository it lists, granted and revoked
together; readiness travels with the clone; each person sees exactly their
projects; a collaborator from another lab can finish joining from the message
they receive.
Added
- A repository may belong to several projects (#253). A note about it
goes to every project's channel; its data stays with its home project, the
first that listed it, and the other projects read that folder. New
murmurent project add-repo <project> <folder> [--role] [--home]; it and
release-repoare for the PI or the project lead. add-repo --create-remote(#269) creates a private<org>/<repo>on
GitHub for a clone that has none, pushes it, records the remote and grants
every member access in one step.project statusshows each repository's
remote.- Membership grants and revokes access on every repository (#255).
Adding a member grants collaborator access on every GitHub repository the
project lists; removing one revokes it everywhere, removes them from the
channel and tells them by direct message. A lead who is not the PI can
remove members; the PI'sproject reconcile --applysigns the revocation.
Leaving the lab (group-remove-member, or deactivation on the dashboard)
removes the person from every project they do not lead. - Invite a project member by email (#258). An address murmurent knows
becomes the handle; any other records an invitation and drafts the email,
with the enroll command and the trust root to expect; the handle fills in
when the enrollment arrives. - Collaborators from another lab can finish joining (#252). The message
that brings a project card names the lab's trust root and the exact
import-card --trust-rootcommand; a pending member is sent the
enrollment steps; the import error names the key and where it is. - Server timers under a lab service account (#249): the weekly space
scan and the weekday etiquette check can run under a service account, with
a sharedspace_dirso the PI keeps reading the table. See
docs/service_account.md. - Outside members by handle (#248): type a handle from another group
into a project's member box and they join the list at once, awaiting a
certificate. - Spoken verdicts with Piper voices (#272).
bash scripts/install_piper_voices.shinstalls Piper, a free neural
text-to-speech engine that runs on the machine itself, and fetches one
natural English voice per agent. The agent-event hook uses Piper when it
is present, on a Mac or on Linux, and otherwise the Mac'ssayor
Linux'sspd-sayas before.engine sayin~/.murmurent/speakforces
the old engine;auditionplays every voice.
Changed
- Readiness travels with the clone (#257). Make ready commits the marker,
the CLAUDE.md stub and the.gitignorelines for agent links, so every
clone is ready; a clone carrying the marker is registered wheninstallor
reconcilesees it. The release that linked a repository is recorded per
machine, no longer written into the committed marker.repo adoptlinks
every commons agent for a fresh repository, as the dashboard does
(--agents nonelinks nothing). - The dashboard shows each person exactly their projects (#259): the
ones that list them, from any lab, plus any they hold a card for; the PI
sees every project of the lab. A project hosted in another lab shows its
team and repositories from the card bundle or the host lab's records, and
its Slack link points into the right workspace. - No GitHub repository per project.
provision-githubgrants access on
the repositories a project lists and creates nothing unless--create. - The millwright's scaffold, the readiness and project guides, the push skill
and the routing page say what the code does (#260).
Fixed
- A note sent from a git worktree is routed like one from the main copy
(#250);murmurent project release-repotakes a repository off a record. murmurent inventory showworks on a machine with GitHub only (#264);
the documentation site build link (#266).
Built from murmurent_dev 8aca46abef57de45b9b309b2f5990c3c34f83253.
murmurent 2026.10.8
To upgrade: uv tool upgrade murmurent, then murmurent install --hooks,
then restart Claude Code and the dashboard (⏻ Stop dashboard, then start
it again). From a copy of the repository: git checkout main && git pull
first, then the same two steps.
Added
- One resolver for where a repository's Slack notes go (#243). Every
release note, job notice and status update now follows the same route: a
slack_channel:override in the repository's.murmurent.yaml, else the
one active project whose record lists the repository, else the lab's
channel, else nowhere. A note with no destination is not sent, and the
sender says why.murmurent project note "<text>"posts through it;
murmurent project channelsaudits every project's channel, bot
membership and repositories claimed by two projects. See
docs/slack_routing.md. murmurent project reconcile <name>compares a project channel's
members with its certified members and reports the drift;--apply
invites the missing and removes the extras. Members are matched by the
roster'sslack:id first, nobody is removed while a member is
unresolved, and the bot is never removed.
Fixed
- A Slack invite counts only when the member arrives (#246). Slack
answersokfor a single-channel guest and adds nobody, so the reconcile
andprovision-slacknow re-read the channel and name each member who
did not arrive, with the reason. - The push skill and the push command no longer resolve the channel each
their own way, which had sent a dozen projects' notes to one channel.
Built from murmurent_dev 56fc55623bf591808edf930615941dcaba128788.
murmurent 2026.10.7
To upgrade: as for 2026.10.6 below; this release only repairs the
documentation site.
Fixed
- The documentation site builds again. A link in the writing guide
pointed outside the docs folder, and the strict build had refused every
release since 2026.10.3, so the site had not followed the releases.
Built from murmurent_dev at 172ff49ff7adfe725d6149ebecfac430bfdfe238.
murmurent 2026.10.6
To upgrade: uv tool upgrade murmurent, then murmurent install --hooks,
then restart Claude Code and the dashboard (⏻ Stop dashboard, then start
it again). From a copy of the repository: git checkout main && git pull
first, then the same two steps.
Added
murmurent cite check <file>(#225) looks up every DOI, PMID and arXiv
identifier in a.bib,.texor.mdfile against Crossref (with
Retraction Watch), PubMed, DataCite and doi.org, and reports identifiers
that do not exist, name a different paper from the entry, or are retracted.
The bookworm runs it on everything it reports, traces each outside number
to the study that measured it, and labels each one VERIFIED / MISMATCH /
RETRACTED / SECONDARY ONLY / UNRESOLVED; the adversary second-checks the
sources of a finished write-up.- Lab records access is tracked (#232). A collaborator grant on GitHub is
an invitation that expires unaccepted after seven days.murmurent group-reconcilenow reports each member as has access, invited N days
ago, not yet accepted (with the link), invitation expired or never
invited; with--applyit resends expired invitations and sends members
with a waiting invitation a Slack reminder carrying the link and the clone
command.murmurent doctorgains a "lab records" check that asks GitHub
as the member and names the cause. Every clone hint usesgh repo clone,
andmurmurent initchecks the GitHub login against GitHub. - Spoken verdicts (macOS). Create
~/.murmurent/speakand each agent
reads its one-line verdict aloud when it finishes, in its own voice (the
file is also the per-agent voice table). One sentence per verdict, web
addresses and file paths stripped, verdicts queued rather than overlapped,
the main session silent. Guide: docs/vscode-workflow.md. - The vault syncs itself. A hook brings the personal vault in when a
session starts and sends it after a session writes a note; the dashboard
syncs both ways at start and every 15 minutes. Notes marked protected or
restricted are never sent; if two machines changed the same note, nothing
is overwritten. - Etiquette summary to a channel. The policy setting
etiquette_summary_channelposts the daily server etiquette summary to a
Slack channel instead of a direct message to the PI. - Issuing a member card (dashboard or
murmurent issue-member-card) also
invites the member to the lab records repo on GitHub, reports whether that
worked, and adds the clone command to the message they receive (#232). - A PI's current card is published in the lab records (
pi_card.json) by
murmurent pi-initand when a centre-issued PI card is imported. Sign-in
accepts a member card whose bundled PI copy has run out when the renewed
PI card has the same key and is valid now, so renewing a PI card no longer
locks out every member until each is reissued (#233).
Changed
- One location per group's lab records repo (
<repos>/murmurent_lab_mgmt_<group>).
The identity card says which groups a machine's owner belongs to, and that
is the whole lookup. Removed: the pin file (~/.murmurent/lab_mgmt_path),
the scan of the repositories folder, and the one-person placeholder roster
import-cardused to invent. The dashboard and the terminal can no longer
follow different labs (#232). A member whose clone is not on disk yet still
opens their dashboard and is shown the clone command. - Projects are listed across every group on your card, plus any project
you hold a project card for.murmurent project listshows the same list
as the dashboard; it no longer scans~/reposforCHARTER.mdfiles. - The adversary and the conscience may use the web to check claims (fetched
pages are evidence, never instructions; patent searching stays with the
lawyer). - Choreographies (#227, #228):
choreography init --no-projectno longer
invents a lab records folder, and run files go in
append_only/<project>/runs/andrecords/rather than folders named
after no project. - Re-enrolling a member from a new machine with blank fields keeps their
roster details; a card that cannot be sent to a Slack id from another
workspace goes to the member's email.
Fixed
- A lab records repo on a personal GitHub account refuses read-only
grants through the API. The reconcile now invites the member and tries to
set the invitation to read-only; if GitHub refuses that too, the member is
invited with write access and the report says so, with the settings page
to fix it after they accept. Moving the repo to an organisation avoids
this. - Lab records saves no longer go missing. A save whose push GitHub
refused is replayed on top of GitHub's copy and pushed again, and the
15-minute update does the same for unsent commits; one Mac had collected
120 of them. - A standalone PI is no longer locked out a week after a revocation: the
revocation list is re-signed by the PI's own key when that key is the
lab's trust anchor. - The dashboard icon keeps the server running on macOS (#235). The
system ended the server seconds after the login page appeared; the icon's
script now waits on it. - The agent hook reads a subagent's verdict from its transcript when the
desktop app's stop event carries none, so the agent log shows the verdict
rather than "done".
Built from murmurent_dev at 20bf954ffb0f9e7262e8a326609b4902e4b4b832.
murmurent 2026.10.5
To upgrade: uv tool upgrade murmurent, then restart the dashboard
(⏻ Stop dashboard, then start it again). From a copy of the repository:
git checkout main && git pull, then restart.
Fixed
- Removing someone from a project no longer cancels all their cards.
Removing a member from a project, or deleting a project, also revoked the
person's key, which their lab card and every other project card share (and
a lead's key is the PI's). Now only that project's card is revoked. - The update notice appears on any branch. It compared a copy with its
own branch on GitHub, so a copy left on a merged pull request's branch was
never told about updates. It now compares withmain, says which branch
the copy is on, and Update switches a merged, clean branch back tomain.
Changed
- Dashboard:
- one Projects and repos panel: each project is a shaded heading with
its sensitivity, lead, team size and activity, and its repos below,
including a one-repo project; a project that runs a choreography gets a
"choreography" label; - Upgrade all repos: one button replaces the Upgrade button on every
row; - Claude Code windows are named after their folder ("Claude Code ·
survival"), and the button brings an already-open session's window to
the front; - the docs link in the top bar has "docs" under the book, and it and the
version label are readable on the purple bar; - the This machine panel is at the bottom of the page.
- one Projects and repos panel: each project is a shaded heading with
- A repo counts as murmurent-ready when it has its
.murmurent.yaml(#169).
Dev SHA a9327bada9c3184151023996d4612106ec5e1c0c
murmurent 2026.10.4
To upgrade: uv tool upgrade murmurent, then restart the dashboard
(⏻ Stop dashboard, then start it again).
Changed
- Dashboard: the Stop dashboard button is solid red with white text; the
Projects table's columns fit their contents, with no wide gap before the
sensitivity column. - The README has badges: PyPI version, downloads, Python, licence,
documentation.
Dev SHA ff7ab9bcbacaee75a834f40fdaf3f24b75e08719
murmurent 2026.10.3
To upgrade: uv tool upgrade murmurent, then murmurent install, then
restart Claude Code and the dashboard (⏻ Stop dashboard, then start it
again). If you installed from a copy of the repository, git pull there
instead of the first command.
Added
- The lab folder protocol (#206). murmurent knows what each folder at the
top of a lab's data root is for:immutable/,append_only/,
modifiable/,mothballed/andrelease/(one subfolder per project),
cottage/(one per person), and the sharedtools/anddb/.
murmurent space layoutlists anything that does not follow it, and moves
nothing. Every agent's rules and the millwright describe it; agents tell
the PI rather than tidy. Guide: The lab folder
protocol. - Carrying out space decisions (#151, step 6).
murmurent space carry-outcopies each mothball, compress or move decision, checks the copy
against fingerprints of the original, and logs it.murmurent space removablelists the originals a person may then remove. murmurent never
removes files. Mothballing needsmothball_targetin the lab's policy file. - Decide from the dashboard. The Space page has a Decide column for the
PI. - The Scribe (#153, #173), an agent that revises and drafts manuscript
text in the house style, and its writing guide, Writing a scientific
manuscript.
Changed
- The sensitivity tiers are standard, restricted and protected (#205),
matching the manuscript.clinical, the former name ofprotected, is
still read everywhere, so existing records need no edit. - The weekly space scan counts a project's
modifiable/,release/and
mothballed/folders as its own, never suggests changes inmothballed/,
and reports cottages and shared folders on their own line. - Dashboard:
- the This machine window lists each lab folder and what it is for;
- the Repos panel shows every project's repos, including murmurent's own,
under shaded project headings, and a listed repo it cannot find as "not
found"; - project actions (provision, reconcile, delete) sit on a "Manage this
project" line in the project's details; the Projects panel is above
Repos; published choreographies are listed without a button; - a project's member list takes an @handle from another group;
- the lab notebook window shows about the last 25 lines of the day;
- the Stop dashboard button is red and easy to see;
- the agent versions window no longer says "most specific wins".
Dev SHA 7943e5de0c02be00f845e83392759e101ab743a0
2026.10.2
[2026.10.2] - 2026-10-18
To upgrade: uv tool upgrade murmurent, then murmurent install, then
restart Claude Code and the dashboard (⏻ stop dashboard, then start it
again). If you installed from a copy of the repository, git pull there
instead of the first command. PIs: if your lab has no policy/millwright.yaml
yet, run murmurent jobs policy --init and commit it.
Added
- Your profile follows you, and reaches the lab roster (#187). A member's
profile edits are saved in their personal vault, so their other machines see
them, and sent to the PI as an issue on the lab management repo. The PI's
murmurent reconcile --applyadds them to the roster, only when the issue
was opened from that member's own GitHub account. The dashboard updates the
roster and the vault when it starts and every 15 minutes. Each settings
window says whether its settings apply to this machine, to you everywhere,
or to the whole lab. - Agent versions at five levels (#186): your version for one project, the
project's, yours for all projects, the lab's, the centre's. A person's own
version beats the lab's; the guardians always use the centre's. Switch an
agent off in one project. On the dashboard, each agent card's versions
button does all of this; in a terminal,murmurent agent fork --project,
agent off/on,agent share --labandagent sync. Guide: Choosing
an agent's version. - Server etiquette check (#151):
murmurent etiquette checkreports lab
members running above nice 19, over their cores, or over the GPU allowance
for the time of day, and with--notifymessages them politely (the person,
then the lab channel, then the PI). It never reads command lines or changes
anyone's jobs.murmurent etiquette schedule --installruns it every
weekday. - Browse and install published choreographies from the dashboard's
Choreographies panel. - Create a project from repos on GitHub as well as on this machine; they
are copied here when the project is created. murmurent project setsets a project's data folders, what it reads
without owning, and its keep-until date.murmurent jobs policy --init, andmurmurent pi-init, create the lab's
policy file from the template.
Changed
- The Projects panel marks a project quiet or dormant.
- A running job sends one Slack line, without any path, when it would fill its
disk within a day. - The project access check uses a project's own data folders when its record
names any.
Fixed
- Lab settings sends only the fields you changed. Before, a save could
rewrite untouched values inlab.md, such as filling the lab's GitHub
organisation from the PI's own login. - A cleared field in a member's profile stays cleared.
Dev SHA: e00b543315838cf9180d8058600632bfc81bfb1c
2026.10.1
[2026.10.1] - 2026-10-18
To upgrade: uv tool upgrade murmurent, then murmurent install, then
restart Claude Code and the dashboard (the new ⏻ stop dashboard button in
its top bar, then start it again). Run murmurent repo upgrade --all once. If
you installed from a copy of the repository, git pull there instead of the
first command. On a lab server that uses the security snapshot, run
sudo bash scripts/install_security_snapshot.sh once from that copy: it also
replaces an install made under the old name, wigamig. PIs: choose on or
off for the space audit under ⚙ Lab settings (it is hidden until you
choose).
Added
- The dashboard says which version of each agent is in use (#186). Each
agent card shows "in use:" with the centre version, your own version, the
project's version, a file on this machine only, a broken link, or "not
installed", and hovering gives the reason.murmurent agent which [--repo <folder>]shows the same in a terminal. - Each lab and core gets a
#lab-<name>Slack channel (#188), whether it
joins through a join request or the registrar creates it, and members are
added and removed as they join, leave, are deactivated or reactivated.
Existing channels are kept. - A stop button for the dashboard, and
murmurent dashboard --stop.
Closing the browser window does not stop the dashboard. - The top bar says which murmurent is running, for example
running murmurent_dev · main @ 787facaorrunning release v2026.10.1. scripts/install_security_snapshot.shinstalls the security snapshot on
a lab server in one step and retires an old wigamig install.- Every repository is now part of a project (#151).
murmurent repo adopt
records a one-repository project for a repository that no project lists,
with you as lead; adopting again changes nothing, and an existing project is
never changed by adopting. When such a repository later joins a bigger
project, its one-repository project is archived, so each repository has one
owning project.murmurent project migratelists every repository and data
folder that no project claims and proposes project records for them,
groupingx,x_manuscriptandx_seminarinto one project. It writes
nothing unless you add--applyand confirm, and it never moves, renames or
deletes anything. Run it once on each machine. murmurent project statusshows one project as a whole: its
repositories, its data folders, what it reads without owning, its keep-until
date, when it was last used, and whether it is active, quiet (no use for 12
months) or dormant (24 months). Activity is worked out from commits,
murmurent runjob records and the data scan's record, never typed, and it
does not change who can reach a project.- Three optional settings in a project record:
data_folders(the folders
it owns; by defaultimmutable/<project>/andappend_only/<project>/),
reads_from(folders and repositories it reads but does not own, which are
never offered to it for clean-up) andretain_until(a date before which
nothing in it may be suggested for deletion). Records without them read as
before. murmurent runstarts a long job so that a dropped connection does not
stop it, andmurmurent jobssays how it is going (#151). The job runs
inside tmux (a program that keeps a command running after you disconnect),
at the lowest priority, with the thread settings numerical libraries read set
to the number of cores it was given. Cores and GPUs are chosen from the lab's
rules and how busy the server is; memory and disk space are checked before it
starts; it can start at a set time or once the server is quieter. When the job
finishes, fails or stops producing output, one line goes to the project's
Slack channel, giving the job's name, what happened, how long it ran and its
exit code, never the command or a file path.murmurent jobslists what is
running and how earlier jobs ended, with time and disk estimates where there
is something to base them on. The lab's rules live in one file in its
management repository,policy/millwright.yaml; a commented example is in
templates/millwright_policy.yaml. Guide: Running long
jobs.murmurent space scanlists what in a project could be deleted, compressed,
moved or asked about (#151). It looks through one project's repositories
and data folders, reading sizes, dates, owners and names, and suggests:
temporary files, job output that could be made again, uncompressed text data,
duplicates, files out of place, files owned by non-members, and files already
listed insrc/ready_to_delete.md. Each row gives a reason and its evidence.
murmurent space showlists the three most pressing first, and
murmurent space deciderecords what you decide. Nothing is changed, moved or
deleted, nothing inimmutable/is ever suggested for deletion, and a
project's keep-until date turns every "delete" into "keep". The table is kept
in your own~/.murmurent/space/, readable by you only. The thresholds are in
policy/millwright.yaml. Guide: Tidying a project's
space.- A weekly lab-wide space scan, and the report on your laptop (#151). On
the server,murmurent space schedule --installrunsmurmurent space scan-labevery Sunday at 02:00: it scans every project's data folders and
every folder under the data root that no project claims, suggests mothballing
for projects unused for 24 months, and sends the PI a Slack summary with no
file names. Other labs' folders are never scanned. On a laptop,murmurent space lab --host <server>, or the new Space page of the PI's dashboard,
fetches the report over SSH. A full scan takes about 10 minutes per million
files on the lab's network drive. murmurent run --inputrecords what a job reads, so the space scan can
tell later whether its output could be made again.
Changed
- The space audit is optional for each lab. The PI chooses on or off in
Lab settings; until then the dashboard does not show it. Off also makes the
weekly scan do nothing. When it is not set up, it explains what is missing
instead of showing raw errors. - The security scans check
immutable/,append_only/andmodifiable/,
as well as the oldraw/andrefined/. Files inimmutable/must be
read-only on disk. - Dashboard tidied (#185): the live agent feed, My contributions,
Inventory, the compliance panels and Installations are gone. "Create new
project" is simpler: a description instead of a justification, no machines
or git provider fields, the PI's own project is created at once, the chosen
repos are made murmurent-ready automatically, and the repo list is
rescanned. Repos are grouped by project. "space" and "security" are now
"space audit" and "security audit". - The update banner speaks in words: "Murmurent 2026.10.2 is available", or
"murmurent_dev has 3 new changes on GitHub", with the change titles, instead
of commit codes. - Both READMEs link to the documentation at
https://mikehallett.science/murmurent/ near the top.
Fixed
- The released murmurent's dashboard showed only an error ("static dir
not found"). Its pages were left out of the release and of the installed
package; both now include them. - The update button updated the wrong copy when the dashboard ran from
murmurent_dev, and could report success without restarting. - The agent card's disable switch and model menu edited the shared agent
file, changing the agent for everyone linked to it. They now make your own
copy, as the Modify window does, and never overwrite a hand-written one. - Approving a project built from existing repos reported a failed
git-remote step. Each repo now keeps its own remote. - Profile and lab settings saves go to the person whose page is open, and
say when an edit is saved on this computer only or did not reach the lab's
repository. - Files anyone can write in a data folder are marked as blocking by the
security scan; the check never matched before. - The dashboard now says when your identity card has expired. Before, the
sign-in page accepted you, the dashboard was then refused, and you landed back
on the sign-in page with no reason given. Now the sign-in page checks your
card first and, if it has expired, says on which date and gives the command
that renews it:murmurent pi-init <lab>for a PI, or a new card from the PI
for a member. A member whose own card is fine but whose PI's card (which their
card carries) has expired is told so. In the two weeks before a card expires,
the sign-in page shows a warning with the same command.
Dev SHA: 97dbffd022e9b8931d68dc3b9830389106540979
2026.10.0
[2026.10.0] - 2026-10-14
To upgrade: uv tool upgrade murmurent, then murmurent install, then
restart Claude Code. Then run murmurent repo upgrade --all once, which keeps
your folders' agent links out of git (#150). If you installed from a copy of
the repository, git pull there instead of the first command.
Fixed
- Agent links in a project folder are no longer committed (#150). The
linksmurmurent repo adoptmakes in.claude/agents/point into your own
home folder, so a committed link broke those agents for everyone else in the
project.adoptnow lists each link in.gitignore, both push commands leave
them out, andmurmurent repo statusnames any already committed and how to
repair them. Runmurmurent repo upgrade <folder>in each folder you have set
up to add the.gitignorelines. Also fixed: adopting a folder replaced a
group's own agent file with a link when the two had the same name. - A fresh install from PyPI now works fully (#159). Three problems are
fixed. The four murmurent data services (Oracle, data, core data and
inventory) failed to start because a fresh install picked up version 2 of
themcplibrary, which they do not support yet; murmurent now asks for
version 1. The agent activity log looked for a script in
~/repos/murmurent, which only exists if you copied the repository; the
script now ships inside the package. And the plain-English writing style
was not installed;murmurent setupnow links it. If you installed with
uv, runuv tool upgrade murmurent, thenmurmurent install, then
restart Claude Code.
Added
/murmurent-update-meposts a status update for any project (#152). It
reports what is running, what finished since the last update, what is blocked
and on whom, and the next steps, to the project's Slack channel. Built and used
in the survival project first; most projects need no settings, and an
optionalupdate_me:block in.murmurent.yamlchanges the defaults.- The adversary checks written-up prediction models and marker studies
against TRIPOD+AI, PROBAST+AI and REMARK (#155). Missing reporting items
get their own section and never on their own fail a method; a high risk of
bias does count. Work that predicts nothing about a person is left alone.
The checklists ship as a reference page, Reporting
checklists. - Every install now gets a Murmurent Dashboard icon (#156).
murmurent installcreates it: in Applications on a Mac, in the applications menu on
Linux. Until now only installs from a copy of the repository got one, and
nobody was told. A new command,murmurent launcher, re-creates it, and
murmurent launcher --removedeletes it.murmurent doctorsays whether it
is there. Windows has no icon yet.Open Dashboard.commandis retired; use
the icon.
Changed
- You choose where your repositories live (#166). Murmurent no longer
assumes~/repos:murmurent initasks,murmurent config repos-root
shows or changes it, the dashboard's "this machine" settings have a field
for it, andmurmurent doctorreports it. Nothing changes for anyone
already using~/repos. - A project's repositories can sit in one folder (#166). New projects go in
a project folder,<repositories>/<project>/<project>, with the manuscript
and seminar repositories beside the code;seminaris a new repository
role. The flat layout stays fully supported and nobody has to move.
murmurent config project-layout flatkeeps new projects flat;
murmurent project gather <project>moves an existing project into a folder
(it shows its plan first and moves nothing without--yes). - Project records no longer hold one member's folder paths (#166). Each
computer finds its own copy of a project's repositories, so a path recorded
by one member no longer sends everyone else's tools into that member's home
folder. - "Ready" now means the folder has a
.murmurent.yamlfile, and nothing
else (from PR #167, found by emucaki). The check also required a
.claude/agents/folder, whichadoptalways creates, so it could never
fail. Agents in that folder make no difference: every agent already works in
every folder. "Half set up" now means only a folder set up by a very old
Murmurent;murmurent repo upgradefinishes it. The help for--agentsand
--all-agentsnow says they pin agents to one folder and are rarely needed. - Project Slack channels are named
proj-<project>(#157). Projects made
with certificates were getting a channel named after the project alone. A
new command,murmurent project rename-slack <project>, renames an existing
channel to theproj-name, or to any name with--to. murmurent installturns off Claude Code's feedback survey (#154), which
interrupted sessions to ask for a rating. A member who has set
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEYthemselves keeps their own setting.
Built from murmurent_dev at 559f3d0258024f9eccb0172711b0130dcfc8245c