Skip to content

Releases: ChesterRa/cccc

v0.2.8

09 Sep 12:35

Choose a tag to compare

Release Notes (0.2.8, Stable)

  • Encoding & I18N
    • Harden mailbox decoding for non‑ASCII: try UTF‑8 (BOM/strict), then UTF‑16 (BOM and NUL‑heuristic LE→BE) before GB18030; fallback Latin‑1 only as last resort. Prevents mojibake when peers write UTF‑16.
    • Add Encoding Discipline to prompts and peer guides: always write .cccc/mailbox/**/{to_user.md,to_peer.md,patch.diff} as UTF‑8 (no BOM); avoid binary/unknown encodings or escaping that alters non‑ASCII text.
  • Delivery & Outbox
    • Unified Outbox (.cccc/state/outbox.jsonl) as the single source for outbound events.
    • Bridges read Outbox and send summaries; orchestrator clears mailbox files after logging to avoid repeats.
  • Telegram Bridge
    • Switch API calls to JSON/UTF‑8 (application/json; charset=utf-8) for sendMessage, etc., fixing non‑ASCII corruption.
    • Add outbound file ACK sidecar .sent.json; avoid re‑sending already delivered files.
  • Preamble & Startup
    • Lazy preamble: merge one lean SYSTEM block into the first user message per peer; no startup SYSTEM spam.
    • Reset preamble state on orchestrator start; log lazy-preamble-sent in ledger.
  • Insight & REV Governance
    • Enforce one trailing fenced ```insight block on to_peer (intercept if missing); insight is meta‑only by guidance (no runtime novelty caps).
    • Lightweight REV habit: track review/revise; gentle reminders only (non‑blocking).
  • Mailbox & NUDGE
    • Inbox pull flow with [NUDGE] guidance; ACK by file move or explicit token, reducing paste races.
    • Robust read/write with explicit UTF‑8 for internal state files.
  • Weekly Diary
    • Path clarified to .cccc/work/docs/weekly/YYYY-Www.md (non‑authoritative, light‑touch habit).
  • Housekeeping
    • Multiple RCs (rc1–rc4) validated the UTF‑8 JSON transport and decoding changes end‑to‑end.
    • Documentation refined to keep rules crisp (mailbox/outbox, insight, encoding, RFD).
  • Known Issues
    • If a peer writes non‑text/binary‑mangled content, the orchestrator cannot reconstruct valid Unicode. The prompt now instructs peers to emit UTF‑8; we can add a quiet ledger warning for non‑text writes if desired.
  • Upgrade Notes
    • Restart orchestrator and Telegram bridge after upgrading to load new prompt and decoder.
    • Ensure environment locales are UTF‑8 (e.g., LANG=en_US.UTF-8) for external tools invoked by peers.

0.2.7

08 Sep 16:59

Choose a tag to compare

Highlights

  • Quiet Boot + First‑Message Preamble
    • No automatic SYSTEM injection at startup.
    • The full (lean‑but‑complete) SYSTEM prompt is merged into the first user message per peer and sent as a single instruction. /refresh re‑sends the same text (single source).
    • Clear “Why” section added to the SYSTEM prompt and PEERA/PEERB docs to enforce expert‑like collaboration (reflection, explicit next step/counter, TODOs that require consent).
    • Clear “Why” section added to the SYSTEM prompt and PEERA/PEERB docs to enforce expert‑like collaboration (reflection, explicit next step/counter, TODOs that require consent).
  • Insight Intercept (Structure Invariant)
    • Outbound to_peer must end with exactly one trailing fenced ```insight block.
    • Missing insight triggers a short, actionable intercept message; message is not forwarded until corrected. No timers, low friction.
  • Unified Outbox (JSONL) for Reliable Delivery (Multi‑bridge Ready)
    • Core appends outbound events to .cccc/state/outbox.jsonl:
    • to_user: { id, ts, peer, text, eid }
    • to_peer_summary: { id, ts, from, to, text, eid }
  • Bridges consume Outbox (not mailbox files), send to IM, and record ack in ledger (bridge‑outbox‑sent). Idempotent via eid.
  • Solves previous race where to_user.md could be cleared before bridges sent it; prepares for future multi‑bridge (Telegram, Slack, Email).
  • to_peer Delivery Robustness
    • Mailbox‑origin to_peer bypasses low‑signal filter (still subject to insight intercept and RFD/path gates).
    • Inline patch in to_peer: preflight/apply/commit; clears to_peer.md; emits to_peer_summary to Outbox for external summary.
    • Mailbox reads hardened (UTF‑8 with errors='replace') to avoid losing events on decoding anomalies.
  • Telegram Bridge Improvements
    • Consumes Outbox to send to_user and to_peer_summary; stops polling mailbox files.
    • First‑message preamble fixed (imports prompt_weaver from .cccc reliably).
    • File ACK: writes .sent.json with metadata and ignores it on scan. Summaries include optional captions and send‑as override.
  • Weekly Diary Path, Docs, and README
    • Weekly diary moved to .cccc/work/docs/weekly/YYYY-Www.md (non‑authoritative).
    • README adds the practical “end every message with a trailing ```insight” rule and explains the first‑message preamble behavior.

Breaking Changes

  • Bridges must consume Outbox (.cccc/state/outbox.jsonl) rather than polling mailbox files for to_user/to_peer summaries.
  • Startup no longer injects SYSTEM by default; the preamble is added to the first user message per peer.
  • Some config keys removed to keep things simple; only delivery.lazy_preamble.enabled remains.

Migration Notes

  • If you have custom bridges:
    • Tail .cccc/state/outbox.jsonl and send only events where type ∈ { to_user, to_peer_summary }.
    • Maintain a small seen‑ids set (eid or id) for idempotence; write an ack entry to ledger if needed.
  • If you relied on mailbox polling for summaries, remove that logic and switch to Outbox consumption.
  • Keep using .cccc/mailbox//to_user.md and to_peer.md to communicate with the orchestrator; the core clears these after logging to Outbox.

Quality Notes

  • Missing insight intercept prevents accidental low‑signal to_peer.
  • Robust mailbox decode (UTF‑8 with replacement) eliminates intermittent “non‑delivery” due to bad bytes.
  • Inline patch handling now cleans source file and broadcasts a summary event consistently.

Internal / Housekeeping

  • Prompt weaver refined (lean, complete, single source); added “Why” purpose lines (insight/TODOs).
  • PEERA/PEERB docs aligned with “every message has one ```insight” and the collaboration ethos.
  • Removed misleading startup message about sending SYSTEM; behavior is now quiet boot + lazy preamble.
  • Simplified config surface; default behavior aims for reliability and minimal ceremony.

v0.2.6 — Self‑check aligned & dialog rhythm stable

05 Sep 07:57

Choose a tag to compare

What’s new

  • Self‑check text aligned with cli_profiles.yaml:
    [Self-check] Briefly answer (≤2 line each):
    1. Any drift from goal?
    2. What’s still unclear? Any new confusion created? Any better ideas?
    3. What was missed?
    4. The single next check (hook/path/metric).
      Continue only after answering.
  • Self‑check trigger broadened: counts all meaningful handoffs (User/System/PeerA/PeerB), filters NUDGE/low‑signal, so deep conversations reliably get periodic reflect prompts.
  • Telegram summaries (from 0.2.5): preserve newlines and are configurable:
    • max_msg_lines / max_msg_chars
    • peer_message_max_lines / peer_message_max_chars
  • CLI additions (from 0.2.5): cccc bridge restart / logs / version
  • Packaging & repo hygiene: single‑source scaffold (build‑time sync), clean ignores for runtime/docs/tests/local venv

Upgrade notes

  • After upgrading:
    • cccc init --force # refresh scaffold
    • Check .cccc/settings/telegram.yaml for the new line caps
    • Optionally update inbound_suffix as per README to keep dialog “human‑like”
    • cccc bridge restart
  • Verify: ledger shows kind:self-check periodically; in Telegram, multi‑line summaries are readable.

v0.2.5

05 Sep 05:38

Choose a tag to compare

v0.2.5 — Telegram‑first RC → GA

Highlights

  • Telegram summaries now preserve line breaks (multiline) with configurable caps:
    • max_msg_lines / max_msg_chars (general summaries)
    • peer_message_max_lines / peer_message_max_chars (Peer↔Peer)
  • Bridge cwd fixed: logs write to .cccc/state/bridge-telegram.log; status validates live PID.
  • CLI additions: cccc bridge restart / logs / version.
  • Telegram‑first README: install → init → doctor → token → run;Minimal “First Landing Checklist”;Typical Session (Explore→Decide→Build)。
  • Prompt upgrades (lightweight): human‑like rhythm with short templates (IDEA / Decision ≤6 lines / Reflect 2 lines)。No hard quotas.

Changes

  • Packaging: single‑source scaffold with build‑time sync(scripts/sync_scaffold.py);clean repo ignores (state/logs/work/mailbox/docs/tests/venv)。
  • Workflow: .github/workflows/release.yml auto‑publishes TestPyPI for rc tags and PyPI for stable tags。
  • Inbound suffix guidance(sample in README):nudges peers to explore first, avoid pure ACK, capture reflect。

Upgrade Notes

  • After upgrading:
    • cccc init --force # refresh scaffold from package resources
    • Review .cccc/settings/telegram.yaml: new keys
    • max_msg_lines, peer_message_max_lines
  • Optional: update inbound_suffix in .cccc/settings/cli_profiles.yaml(see README samples)
  • cccc bridge restart
  • For first‑time users:
    • Copy PEERA.md → CLAUDE.md;PEERB.md → AGENTS.md;put brief in PROJECT.md
    • Ensure CLI commands (claude/codex) are on PATH or set commands.peer*/env vars