CCCC v0.4.22 Release Notes
v0.4.22 is a reliability and usability release for runtime operators, IM bridge users, and Web users. It tightens Codex and Hermes launch behavior, makes delivered runtime work less noisy in the inbox, improves DingTalk reply routing, makes actor profiles easier to use for non-admin users, and adds image previews to chat attachments before sending.
Runtime Launch Reliability
Codex actors now build their launch command with the daemon environment as part of command normalization.
This matters most in Docker and service-managed deployments: values such as OPENAI_BASE_URL can be supplied once to the daemon environment and still be reflected in Codex runtime configuration. Actor-specific environment remains the higher-priority override, so teams can keep a shared default endpoint while letting individual actors use a different endpoint when needed.
Codex app-server sessions also detect provider authentication failures more clearly. When the runtime reports a 401 authentication failure, CCCC records the runtime session as auth_failed, disables resume eligibility for that saved session, and preserves the error text for operator diagnostics. This avoids treating stale Codex app-server resume metadata as still usable after an authentication problem.
Hermes PTY actors also get safer terminal defaults at launch. CCCC now supplies TUI-oriented environment defaults for Hermes PTY sessions, including mouse/input and terminal color settings, while preserving any explicit values configured by the user. This makes Hermes startup behavior more predictable under CCCC's PTY surface without turning the defaults into hard-coded user policy.
DingTalk Reply Routing
DingTalk conversation state is now persisted across bridge restarts.
CCCC remembers recent session webhook metadata along with whether a conversation is group or one-to-one and, for one-to-one conversations, the DingTalk user id needed by the fallback API. This improves reply behavior after reconnects and prevents one-to-one DingTalk conversations whose ids look like cid... from being incorrectly treated as group chats once the short-lived webhook is unavailable.
Cleaner Delivery State
Successful PTY delivery now marks delivered runtime messages as read by default.
For runtime actors, this read cursor represents that CCCC has handed the message to the runtime, not that a human operator manually reviewed it. The new default keeps actor unread indicators closer to the actual delivery state and reduces stale unread noise after successful injection.
Operators who prefer the previous behavior can still turn the setting off. Existing explicit auto_mark_on_delivery=false configuration remains respected.
Actor Profiles For Non-Admin Users
The profile API now has an accessible view that returns the profiles a caller can actually use.
Non-admin users can retrieve global profiles and their own user-scoped profiles through one request. Admin users receive the full profile set. This moves the visibility rule to the server side and removes the need for the Web client to merge separate global and personal profile lists itself.
The result is simpler profile selection in the Web UI and a clearer permission boundary for user-scoped actor profiles.
Chat Attachment Preview
The chat composer now shows a hover preview for image attachments before they are sent.
Preview placement is constrained to the viewport, so small screens and bottom-of-screen composers should avoid clipped previews. Non-image attachments keep the compact file chip behavior.
Validation
The release was validated with targeted coverage for:
- Codex daemon-environment command normalization and actor-level environment precedence;
- Codex app-server authentication failure detection and non-resumable session marking;
- Hermes PTY launch environment defaults and explicit overrides;
- DingTalk persisted conversation routing, webhook recovery, and one-to-one fallback behavior;
- delivery auto-read defaults and explicit opt-out behavior;
- actor profile
accessibleviews across resolver, Web API, and Web API client layers; - composer image preview detection and viewport-safe positioning;
- Web typecheck and production build coverage.
Why Upgrade
Upgrade to v0.4.22 if you run Codex from Docker or a managed daemon environment, use Hermes as a PTY actor, rely on DingTalk replies across bridge restarts, use actor profiles with non-admin users, or want runtime unread counts and chat attachment handling to feel closer to the actual work state.