Skip to content

CCCC 0.4.50

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Nov 14:55
· 11 commits to main since this release

CCCC v0.4.50 Release Notes

CCCC v0.4.50 tells you when something stopped working instead of leaving you to
guess: an agent that cannot stay up now says so on the message, and an agent can
learn that its own message may not have got through. See
When an Agent Cannot Stay Up. Audio plays in the
message, and common attachments, links to files and file paths open in the page.
See Files and Links Open in the Page. The
message log reads better on a phone. Skills reach agents again. Group memory is
removed, standing team rules now reach an agent first, /cccc-self-evolution
becomes a short team review, and the built-in stand-up becomes a team check; see
Team Rules and the Team Review. Automation rules
can be run at once and show real run times; see
Automation You Can Try at Once. Settings that
could be saved but did nothing are gone. This release covers the changes since
v0.4.49; see Before You Upgrade before installing.

Before You Upgrade

Before upgrading, let sends and recordings finish, restore or discard waiting
sends, then send or copy every unsent draft, restored ones included, and save
unsaved edits in Files: all of these live only in the open page. Check whether
a message already arrived before sending it again.

Upgrade the CCCC executable and restart the daemon and Web through your usual
launch method to load the new code and bundled Web assets, and reload open CCCC
pages. The standalone installer behind cccc update stops a running daemon and
starts it again from the new version. Before a pip upgrade, run
cccc daemon stop and close any foreground CCCC so pip can replace the
executable, especially on Windows, then start CCCC again. A daemon left running
keeps the previous version. Runtime history remains in CCCC_HOME.

  • Restart the daemon first, then update and reload the CCCC integration and
    reconnect its MCP server in each app for already connected native sessions.
    Restarting the CCCC daemon alone does not reload those processes. Until a
    session reconnects, it keeps working on its previous MCP server, but
    cccc_capability_use does not return a skill's rules there and the team
    review's tools are missing. The cccc MCP server says when it differs from the
    daemon address file and which side to restart. Follow the
    native-session upgrade steps
    for your app.
  • Group memory is removed. Existing files stay in
    CCCC_HOME/groups/<group_id>/state/memory/ and still travel with a Group copy,
    but CCCC no longer searches or updates them. Anything you still rely on belongs
    in Constraints in the Context panel, or in AGENTS.md if it is long or about
    the project only. Scripts that call cccc_memory, cccc_memory_admin or the
    memory_reme_* daemon operations get an error.
  • Values already saved for the settings listed under
    Other Changes stay in the Group and are ignored.
  • A stand-up rule you saved keeps its schedule, recipients and on/off state. If
    it uses the built-in stand-up snippet with no text of your own saved for it, it
    now sends the new text, which asks the foreman for a longer check. If you turned it
    on at the old 15-minute interval, edit the rule in Automation to run less
    often; Reset to Defaults would also replace your other rules.
  • cccc_message_history now shows an agent only its own traffic. A script that
    named another member through a foreman gets an error.

When an Agent Cannot Stay Up

A message to an agent that cannot stay up now says so. CCCC tries to start the
agent a few times over several seconds, then shows Delivery failed for that
agent on the message, with the reason and Retry in its recipients. After you
fix the cause, Retry or starting the agent offers the message again. If it may
already have reached the agent, its recipients say Delivery uncertain and leave
the decision to you. Before, CCCC kept restarting the agent for as long as the
message waited, and the page showed only that it was stopped.

  • When an agent ends on its own with an error, the page says so and points to its
    terminal, so Start Group no longer looks ignored when an agent exits at once.
  • An agent can learn that its message may not have got through. When CCCC stops
    trying to deliver it, the agent that sent it gets a notice that delivery failed
    or is uncertain. The notice may be late or lost, it can start that agent for one
    more turn, and deliveries to Web Model members are not covered yet. If a named
    recipient is disabled, or the Group is paused or stopped, the send result says so
    at once.
  • Codex native members show recovery steps when their background server exits or
    Codex reports the session ended, and their details say that closing the window
    may not stop them: they can still receive CCCC work and use model credits.
    Pause CCCC access stops new deliveries from the Group.
  • While the daemon is starting, cccc and cccc web keep checking for its answer
    for a few seconds before reporting that it is not answering. Before, one failed
    check was enough, and the report could offer to stop a healthy daemon.

Audio in Messages

Audio files in a message can now be played in the browser. Each keeps its download
and gains a play button. A message has one player, so you can switch between
several clips to compare them. Playback stops if the message scrolls far out of
view.

Files and Links Open in the Page

Markdown, PDF and common text files in a message now open in the page when you
click their name, with their download next to it. Markdown is rendered, and a long
file shows its first 1 MiB. PDF uses the browser's own viewer. Where it cannot show
one, you can download it or, unless CCCC is embedded through Connect, open it in a
new tab.

  • An address that starts with http://, https:// or www. is now a link in a
    plain message too. Before, it was plain text unless the message also had Markdown
    in it.
  • A link to an image, audio or video file opens in the same preview, as does a link
    to one of the Group's files, and Markdown and text from
    raw.githubusercontent.com or gist.githubusercontent.com. A preview loads when
    you click its link. Whether a file from another site shows depends on that site
    and your browser, so the preview keeps a way to open the original. Other links,
    including a PDF on another site, open in a new tab.
  • A path with a directory, such as docs/guide/web-ui.md or out/全片.mp4, opens a
    supported file in Files, as it is now rather than when the message was sent. So does
    a Markdown link to a file in the workspace. Names may use letters in any language.
    Put a path in inline code when a name has spaces or symbols other than ., - and
    _, or when it is relative and starts with a folder named in letters other than A
    to Z; otherwise it may be missed or only partly marked. A path outside the Group's
    active scope stays plain text.
  • A file name such as AGENTS.md or build.rs in a formatted message is no longer a
    link to a website, and formatted messages no longer rewrite .. as an ellipsis or
    (c) as a symbol.

Messages on a Phone

On a phone, a message's sender, time and actions sit above its route, its text
uses the full width, and the sender's insight is set apart below it. Back to
latest
sits beside the members at the bottom of the log, so it no longer covers a
message. The first tap on the members' row no longer gets lost while the message
box is open, and a conversation that fits on the screen no longer shows "No more
messages" above it.

Skills Reach Agents Again

A skill chosen from the / menu sent the agent to look for its rules in a place
that no longer held them, and a skill assigned to an agent was never mentioned to
that agent. cccc_capability_use now returns a skill's rules, and cccc_bootstrap
lists the skills an agent may use. The settings text no longer says an assigned
agent uses a skill automatically: the agent can find the skill and read its rules.

  • /install now tells the agent which tool to use, a Voice Secretary request no
    longer sends the agent to an inbox that does not hold it, and a reminder about due
    replies names the messages.
  • Built-in capability IDs are reserved. A saved copy of a built-in skill no longer
    outlives an upgrade, and importing one fails instead of reporting an update that
    never takes effect.

Team Rules and the Team Review

An agent that starts or resumes now gets the Group's constraints first. Before, the
rest of its recovery context could crowd them out, leaving a few of them or only a
note that they were omitted. cccc_bootstrap carries up to six as the budget
allows, with a note when any are left out.

Group memory and its recall prompt are removed, so an agent no longer waits for a
recall query when it starts. Shared team rules can be kept in Constraints in the
Context panel, which you can see and edit.

/cccc-self-evolution is now a short team review. It reads what you said and how
many messages, scheduled reminders and open tasks each member has, then brings you
at most three proposals, each on its own card with its evidence. Standing rules and
changes to members wait for your pick. Before, it read the whole history and kept a
checkpoint in Group memory. When 10 more top-level tasks are finished, the foreman's
next task update carries a one-line reminder to run it; nobody is woken, and turning
the skill off silences it. cccc_message_history gains sender, and cccc_group
gains activity.

The built-in stand-up under Automation is now a short team check for the
foreman. It is still off by default, and its default interval is now two hours
instead of 15 minutes. Its text asks the foreman four things: whether the open work
still serves your current goals and outstanding requests; where members waited on
each other, redid or duplicated work, handed off unclearly or misread each other,
and whether the team still fits the work; whether what you had to say twice went
better the next time, and whether improvements you adopted helped; and whether a
practical change would clearly pay off. The foreman is to handle what it can, bring
you at most one decision, on a card, and stay quiet when nothing needs anyone,
unless you asked to hear about the check. Before, the stand-up only said how many
minutes had passed. Each run may wake the agent it is sent to and use model credits.

Automation You Can Try at Once

Run now in Automation sends a reminder rule's notification once, without
waiting for its schedule, so you can see what the built-in stand-up asks before you
turn it on. It runs the saved rule, also when the rule is off, does not count toward
the rule's maximum runs and does not change its schedule, so a scheduled run may
still follow soon after. A paused or stopped Group has to be resumed first. The
notification may wake its recipients and use model credits. If the page cannot tell
whether a run went out, it says so and does not try again. Agents can run a reminder
the same way with cccc_automation(action=run_now), under the same ownership as
managing it.

The last and next run in Automation are now in your browser's local time with
the time zone, instead of a UTC timestamp. The last run shows when the rule last ran
and created its notification, marked when the run came from Run now. Before, it
could show the moment the rule's clock started, even for a rule that never ran; runs
from before this version are not shown. A rule that will not run now says why
instead of showing a next time: the Group is paused or stopped, or it is idle and
the rule is the built-in stand-up. A recurring rule saved in another time zone shows
that zone and keeps it when edited, and a schedule the daily, weekly and monthly
patterns cannot express shows as written instead of as daily at 09:00.

A Group's menu in the sidebar now opens that Group's Automation settings.

Other Changes

  • Settings no longer offer options that could be saved but did nothing:
    Collaboration Follow-ups under Automation (keepalive, help refresh, agent idle
    alert and group silence check), Include tail in idle notifications under
    Transcript, and Log level under Developer. For a recurring reminder, use an
    automation rule.
  • The capability center's Sources page no longer has an on/off switch for a source
    or a search box. Neither had any effect in this version.
  • cccc_capability_search no longer lists filters that have no effect, and the
    capability guides no longer promise remote search. Installing skills from a URL or
    GitHub remains available.
  • The Auto theme now follows the light or dark setting of your system. It used
    to switch by the local time of day. In English settings its label no longer cuts
    off.
  • cccc doctor prints a short summary in a terminal. A pipe, a redirect or --json
    still gets the full JSON report.
  • The first screen of a new Group explains Send, Mail, the foreman and tasks in
    plainer words.
  • In a Group with several members, agents are asked to tell you privately when a
    teammate or the team setup is helping or hurting the work. The foreman is asked to
    check who owns what and whether each member's setup fits when it assigns work, hits
    a block or takes a handoff.
  • An agent shown a message with more than eight files used to see only the first
    eight, with no sign of the rest. It now sees up to sixteen, and how many more there
    are.
  • An exact cccc_message_history read no longer repeats a system notice's text
    that its delivery text already shows, and mcp_omitted_fields names any field
    it left out.
  • Runtime wire names now live in one place in the code.

Validation Scope

Release preparation ran the Rust workspace tests and static checks, the CI test
profile, the Web tests and static checks, and repository checks in isolated homes.

Delivery failures were walked on the real page in an isolated home, on a
development build of this change. For an agent whose command exited at once, the
message showed Delivery failed for it; Retry failed again until the
command was fixed and then delivered. A missing command also produced an error on
Start Group. On an earlier build that gave up after three starts instead of
six, an agent that came up on a later try still got its message, and one that
exited after Start Group raised an error notice. Focused daemon tests cover
the sender's failure notice and the answer an agent gets when it sends to a
stopped member. Through an isolated MCP server on a development build, 16 checks
confirmed that cccc_message_history shows an agent only its own traffic, in
lists and in exact reads.

Audio attachments were played on the real page in an isolated Chrome, at desktop
and a simulated phone width and in the dark theme, with eight clips in one
message and an invalid clip to check failure handling. An audio file was opened
in Files to check its controls. Previews were walked on a candidate's own page in
an isolated Chrome, through the ordinary page and through Connect with a real
signed frame: a PDF in the browser's viewer, downloads matching the original
bytes and paths at phone width; an open preview stayed open while 70 new messages
arrived. With the old and new message layouts, at desktop and a simulated phone
width, the message in view stayed in place at the sampled times in twelve loads
of older history.

Automation was walked on the real page in an isolated home and Chrome, on a
development build of this change. The Group menu opened the Automation of the
selected Group and of another Group. Times showed in the browser's time zone, with a
rule's own zone where it differs. Run now wrote one manual notice, showed the
last run as manual and left the schedule, the run count and the rules' version
unchanged. An unsaved edit asked to be saved first and sent nothing, a paused Group
showed its state and disabled Run now, and an idle Group showed why the stand-up
would not run and still ran it on request. The list fit a simulated phone width.
Through the MCP server, a foreman ran a reminder with
cccc_automation(action=run_now), and a peer that claimed to be the user was
refused. A bare path to a video with a Chinese name in a hidden folder opened and
played in the page, also under a workspace root with Chinese names and at a
simulated phone width.

With a recovery context shaped like a real one, v0.4.49 kept only the note that
constraints were left out, while this version carried all five. After an upgrade
in an isolated home created with the published v0.4.49 executable, the Group
memory files stayed in place and a saved test copy of the old built-in skill did
not replace the new one. cccc_group activity answered in 0.19 seconds on a copy
of a Group with a long history, and a real Claude Code foreman walked the team
review once on an isolated copy of a Group without sending its cards. On an
earlier candidate, the built-in stand-up fired in an isolated Group, the foreman
read its full text through the candidate's own MCP server, and the Automation
page carried the new description in all three languages.

The final candidate's own binary reported 0.4.50 and served this version's
Automation text. In an isolated home, Run now on the built-in stand-up, which
was off, created one notification and recorded a manual run; the rule stayed off
and the rules' version did not change. After Run now on a reminder that was
off, the team review still counted no scheduled notices for its recipient. The
Automation walk was repeated on this binary, and a bare path to a video with a
Chinese name opened in the page with a video player. At simulated phone widths of
390 and 320 pixels, in Chinese, English and Japanese, every rule's controls stayed
within the page width.

This is not complete live acceptance. Real Claude Code and Codex sessions in an
active Group kept working through an earlier candidate's daemon, still on their
previous MCP servers. In that Group, the new stand-up text fired once on schedule,
and the foreman made the four checks it asks for and reported what it found and
what the check cost. Whether a real model follows a skill's rules from
cccc_capability_use after its session reconnects, real phones, Safari, Firefox,
and native Windows and macOS were not tried.

Thanks to chriscoveries for keeping runtime wire names in one place, to waterbang
for the phone message layout and the Discord community links, and to everyone who
contributed code, tested and reported issues.

Full source comparison