Skip to content

Releases: dropdevrahul/nexum

v0.4.0

20 Jun 12:29
0377553

Choose a tag to compare

Added

  • Estimated per-tier usage recording in /nx-build so the cost report breakdown is populated with token estimates per execution tier, giving visibility into where the session's cost is incurred.
  • Per-repo routing calibration that biases /nx-plan from historical step outcomes, routing subsequent steps based on learned success rates and execution patterns rather than static tier assignments.
  • Throttled SessionStart audit nudge (scripts/audit_nudge.py, SessionStart hook) that checks ignore-config rot on session start without spamming the user, surfacing a one-line reminder when the ignore config has actionable findings (missing ignore file, unignored noise dirs, or large/binary files). Throttled to once per repo per audit_nudge_throttle_hours. Config: audit_nudge_enabled (default true), audit_nudge_throttle_hours (default 24).

Changed

  • max_steps_per_dispatch default lowered 6 → 4. A 6-step grouped Sonnet dispatch stalled the stream watchdog mid-batch (600s no-progress) and lost the whole batch; smaller batches bound both the per-dispatch context and a single failure's blast radius.
  • Size-aware dispatch batching. /nx-build now partitions a route tier with plan_preview.py --plan … --indices …, which estimates each step's context load (per-step base + declared-file bytes ÷ 4) and bounds each sub-batch by both max_dispatch_context_tokens (default 50000) and the max_steps_per_dispatch count cap — so a few large-file steps split off while a single over-budget step still dispatches alone (steps are never split). New store.partition_steps_by_size; config max_dispatch_context_tokens, dispatch_step_base_tokens. The count-only store.py plan-batches helper remains for when no plan file is available.

Fixed

  • predup freshness guard. A recorded tool_calls row only proves an output was injected once, not that it is still in the live context — subagents share the parent's DB, and compaction/resume evicts output while the row persists, so predup could deny a legitimate read whose content was no longer (or never) in context. predup now lets a call through when its prior row is older than predup_max_age_seconds (default 900; 0 restores the prior ever-recorded behaviour).

v0.2.1

15 Jun 05:40

Choose a tag to compare

Added

  • Absolute-token compaction trigger: statusline_compaction_warn_tokens (default 80,000). The ⚠ /compact status line warning now fires when EITHER the percentage threshold (statusline_compaction_warn_pct) OR the absolute token count threshold is reached. This ensures large context windows (e.g. Opus's 1M-token window) still warn at a meaningful, cost-relevant size rather than waiting until 800k tokens are consumed.

Fixed

  • /nexum-statusline and the README now install a version-independent statusLine command (python3 "$(ls -dt ~/.claude/plugins/cache/nexum/nexum/*/scripts/statusline.py | head -1)") instead of a hardcoded ${CLAUDE_PLUGIN_ROOT} path, which pointed at the versioned cache dir and broke on every /plugin update. Also documented that a plugin cannot self-register the main statusLine (plugin settings.json only supports agent and subagentStatusLine).

v0.2.0

15 Jun 05:27

Choose a tag to compare

Added

  • Session-usage status line (scripts/statusline.py) that displays model, context percentage, token count, cumulative cost, and dedup-hook savings in the Claude Code UI. Wire it with the new /nexum-statusline command, which resolves the absolute path and offers to merge the statusLine key into your settings.json.

Fixed

  • The compaction warning is now driven by Claude Code's real context_window.used_percentage via the status line (configurable statusline_compaction_warn_pct, default 80), replacing the prompt-token estimate that undercounted and rarely fired.

v0.1.1

15 Jun 04:54

Choose a tag to compare

Fixed

  • Hook scripts (truncate.py, context_watch.py, and dedup.py via its import
    of truncate) crashed on Python 3.9 because of PEP 604 X | None type
    annotations evaluated at runtime. Added from __future__ import annotations
    so the documented Python 3.9+ support actually holds. Caught by CI.