Releases: GottZ/ctx
ctx v3.0.1
v3.0.1 — Submodule pointer sync + todos defrag
Patch on top of v3.0.0 (no force-push; v3.0.0 stays as published). Syncs the
.project submodule pointer that v3.0.0 left at its pre-cleanup state, and
defragments the submodule's stale todos.md into a thin pointer — open work now
lives canonically in ctx (019e83df-*) and the memory bootstrap index.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v3.0.1Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v3.0.0
v3.0.0 — Effective use is now part of the contract
BREAKING (usage, not API): ctx is no longer just a store you call — using it
well takes discipline, and that discipline is now documented and expected.
This is the v3 baseline. Before relying on ctx in production, read the new
"Using ctx effectively" README guide and complete its calibration setup.
Why it matters: memory shared across LLM sessions drifts — each re-save
re-interprets through training biases (observations harden into dogma), and a
stored block is a point-in-time observation, not live state. The guide defines
the counter-discipline (load-before-work, source attribution, live cross-check,
no self-confidence gating, external signals) and a 3-step calibration: store
your conventions as a block (an "RLHF warnings" block is a good seed), point
your durable instructions / personal preferences at it, and load it each
session so it lands in context — the only layer that reliably overrides a
trained default. Integrating agents should prompt their user to complete that
setup; it is the one layer the agent cannot write for itself.
Repo hygiene: removes orphaned artifacts (reference/ TS parser, stale temp.md
handover) and dead .gitignore entries.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v3.0.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.6.0
ctx v2.6.0 — Duration-suffix back-off config
The Dream re-dream back-off cooldown bounds are now configured with a duration
suffix instead of encoding the unit in the env-var name — self-describing, and
no ambiguity about which time dimension a value carries:
CTX_DREAM_BACKOFF_MIN_HOURS=12 -> CTX_DREAM_BACKOFF_MIN=12h
CTX_DREAM_BACKOFF_CAP_DAYS=45 -> CTX_DREAM_BACKOFF_CAP=45d
Accepted units: h (hours), d (days), w (weeks), m (months = 30d), y (years =
365d), case-insensitive; a bare number is hours. This is deliberately NOT Go's
time.ParseDuration — that uses m=minutes / s=seconds, which are meaningless for
re-dream intervals and make m=minutes a months trap. There are no minute or
second units.
Defaults unchanged in effect: MIN=12h, CAP=45d, MODE=exp, FACTOR=1.6, GRACE=0,
INERT_OFFSET=7.
CTX_DREAM_BACKOFF_MIN_HOURS / _CAP_DAYS are renamed to CTX_DREAM_BACKOFF_MIN /
_CAP and now take a duration suffix. These vars were first wired in v2.5.2, so
no prior release depended on the old names beyond defaults. ctx dream stats now
reports cap_hours (was cap_days).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.6.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.5.2
ctx v2.5.2 — Dream back-off recalibration (12h-start exp curve)
Recalibrates the re-dream back-off curve so fresh blocks re-dream sub-day —
quality rises fastest in a block's early dreams, and a new block likely relates
to blocks inserted since its last pass — while mature blocks back off hard to
the cap. The curve is now in hours from a small floor with no grace plateau:
cooldown = clamp(1h, cap, min_hours * factor^max(0, n - grace + inert_off))
New defaults: exp / factor=1.6 / min=12h / grace=0 / cap=45d / inert_offset=7.
n=0 -> 12h, n=1 -> 19h, n=5 -> 5.2d, cap by n~10. Validated on real pull
history: ~48% of dream-eval GPU saved at lower link-loss than the prior log/3d
curve (which left fresh blocks waiting 3 days and never backed mature blocks
past 25d). An inert cycle (no links found) starts further up the same curve.
-
SetBackoffConfig was never wired in v2.5.0, so the documented
CTX_DREAM_BACKOFF_* env vars were dead (Go defaults only). Now wired through
cmd/ctxd config -> events.Config -> SetBackoffConfig, with new MIN_HOURS and
INERT_OFFSET knobs. -
ctx dream stats reports cooldown_hours (was days) + min_hours / inert_offset;
the CLI renders hours/days adaptively. The displayed curve is verified
identical to the SQL applied by the dream loop.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.5.2Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.5.1
ctx v2.5.1 — Dream back-off observability
ctx dream stats now surfaces the active back-off policy and a per-eval-count
maturity distribution: one row per dream_eval_count level with the eligible
block count and the effective re-dream cooldown that level yields. Operators
can see how far the corpus has cooled off and the real per-level growth of the
re-dream interval (e.g. n=0->3d grace ... n=21->25d at the deployed log curve).
The CLI renders a human-readable summary — coverage, queue, and the back-off
distribution as proportional eighth-block bars (▏▎▍▌▋▊▉█, reusing the
statusline progress palette for sub-character resolution) — when stdout is an
interactive terminal, and the same JSON when piped, so scripts and | jq are
unchanged.
- ComputeBackoffStats: per-level distribution (GROUP BY dream_eval_count),
ascending to the corpus max, capped at 100 rows with a truncated flag;
per-level cooldown via effectiveCooldownDays (mirrors the SetDreamCooldown
curve). - New dream-stats "backoff" object; StdoutIsTTY (os.ModeCharDevice, stdlib);
dream_render_test.go covering bar resolution + the human render.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.5.1Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.5.0
ctx v2.5.0 — Dream back-off cooldown + ctx init hook fix
Dream gradual back-off cooldown (Wave-2). The re-dream interval now grows
with a block's completed eval-cycle count, so mature/legacy blocks are pulled
progressively less often while new blocks catch up at the base rate. Curve is
configurable (log default, plus exp/linear/off) via CTX_DREAM_BACKOFF_MODE /
_FACTOR / _GRACE / _CAP_DAYS. Back-off only delays a re-dream, never stops it,
so no permanent link-discovery loss. Migration 049 adds dream_eval_count,
back-filled from the dream-eval LLM log so existing corpora enter the
long-cooldown regime immediately. Chosen from an empirical curve-shape
simulation on real pull history (~40%+ of dream-eval GPU saved at the deployed
log/2.5/3/45 defaults).
ctx init wrote non-functional Claude Code hooks (#5). Hooks were emitted in
the legacy flat {type,command} form (silently ignored by current Claude Code,
which requires the nested matcher-group shape) and written to a hardcoded
~/.claude/settings.json, ignoring CLAUDE_CONFIG_DIR. Now writes the nested
schema, honors CLAUDE_CONFIG_DIR (else ~/.claude), and hasHookEntry detects
both shapes for idempotent re-runs. README + brief.go examples corrected.
Reported and fixed by @DamieMoon (PR #6).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.5.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.4.7
v2.4.7 — DreamTimeout tuned 600s → 180s
Empirically tuned from 5878 prod dream-eval calls: p99=156s, so the old
600s timeout was pure overhang. At 600s, 43 stuck calls wasted ~7.2 GPU-h
and each blocked the workers=1 loop for 10 minutes. 180s covers p99 +
cold-start with margin, fails stuck calls 3.3× faster, and costs only
~0.71% of legit calls a re-queue. Reclaims ~5 GPU-h per 38-day window.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.4.7Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.4.6
v2.4.6 — Dream incoming-load forecast
ctx stats and ctx dream stats now project upcoming Dream load, not just
the current backlog: incoming_1h / incoming_6h count blocks whose cooldown
expires in those windows, and next_pending_at gives the exact timestamp of
the next cooldown drop. Operators can anticipate GPU load instead of being
surprised by it. QueueDepth refactored to a QueueStats struct with a single
CTE query. Verified live on prod.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.4.6Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.4.5
v2.4.5 — Dream backlog observability
ctx stats and ctx dream stats now expose the actionable Dream queue
(pickable_now / in_cooldown / never_dreamed / awaiting_embed) using
PickBlock's exact eligibility predicate. Operators can see why the GPU
is busy — the scheduler's next-pick depth — without manual SQL against
dream_cooldown_until. New dream.QueueDepth() helper is additive and
scope-aware; the probe in ctx stats is non-fatal.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.4.5Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v2.4.4
v2.4.4 — CI Node 24 migration
Migrates the two Node 20 GitHub Actions to Node 24 ahead of the forced
2026-06-02 runner cutover. softprops/action-gh-release v2.6.1 → v3.0.0
(runtime-only major). ScribeMD/docker-cache (Node 20, unmaintained since
2024-03, no Node 24 release exists) replaced with actions/cache v5.0.5 plus
explicit docker save/load of the timescaledb-ha:pg18 testcontainers image,
preserving the ~1.2 GB cold-pull avoidance. All action pins now Node 24 or
docker-runtime.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v2.4.4Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctx