发布

  • release: v2.40.0 (slug-mode resolution fix + perf cache + KV-cache hygiene + Pi false-positive fix)

    frostbyte_neo 发布于 2026-05-21 21:07:55 +00:00

    Bug fixes (items 1-5 in proposal_v2_40.md):

    1. Hook resolution order inverted across UserPromptSubmit, PreToolUse, PreCompact.
      Slug-mode now wins over legacy root task_plan.md when both exist. Closes the
      bug where an active .planning// plan was silently bypassed in favor of
      the root file. Resolution chain: PLAN_ID env > .planning/.active_plan >
      newest .planning// by mtime > root fallback.

    2. .active_plan target dir is validated. Dead pointers fall through cleanly.

    3. .active_plan content is regex-validated as ^[A-Za-z0-9_][A-Za-z0-9._-]*$.
      Whitespace-only and path-traversal corruption fall through instead of
      producing weird path lookups. Tests cover whitespace, ../escape, and
      leading-dot cases.

    4. check-complete.sh wires into resolve-plan-dir.sh when no path arg given.
      Restores slug-mode parity for any caller that invokes the script without an
      explicit plan path.

    5. Pi extension dangerous-command detection uses word-boundary regex. Benign
      git push origin no longer triggers the warning; only --force,
      --mirror, +ref, plus rm -rf, sudo, chmod 777/a+rwx, git reset --hard, git
      clean -fd, fork bombs, dd to /dev/[sh]d[a-z].

    Performance (items 6, 7):

    1. mtime-keyed SHA-256 cache under ${TMPDIR:-/tmp}/pwf-sha cuts redundant hash
      work on warm cache. Caches the result keyed by absolute plan-file path,
      stores mtime + hash, skips sha256sum when mtime unchanged.

    2. KV-cache hygiene on injected progress.md tail. Sub-second timestamps and
      timezone-suffix forms are normalized to a stable epoch-zero form so the
      model's prefix cache stays warm across turns. Manus-aligned.

    Portability + races (items 19, 20):

    1. resolve-plan-dir.sh portable mtime fallback chain: GNU stat -> BSD stat ->
      date -r -> python3 -> python -> perl -> 0. Multi-plan workflows stop
      silently degrading on non-GNU systems.

    2. attest-plan.sh uses atomic temp+rename with optional flock guard.
      Concurrent legacy-mode attestations stop producing truncated files that
      triggered false [PLAN TAMPERED] warnings.

    Tests: 130 pass / 2 pre-existing Windows exec-bit failures unchanged. +20 new
    tests vs v2.39.0. See CHANGELOG for full inventory.

    Version bumped to 2.40.0 across 14 SKILL.md variants + plugin.json +
    marketplace.json + CITATION.cff via scripts/bump-version.py. .continue,
    .gemini, .pi, .kiro lag intentionally.

    下载附件