Skip to content

v0.5.2

Choose a tag to compare

@xmutfyh xmutfyh released this 15 Aug 12:22
· 7 commits to master since this release

v0.5.2 (2026-08-15)

Fixed (P0)

  • Incremental-lint fingerprint instability: paragraph-level fingerprints previously used the +/-60/80-char context snippet - editing other words in the same paragraph turned an unfixed issue into a false "resolved+added" pair and re-injected it on every write. Fingerprints now use the matched text itself; state fingerprint version bumped to 3 (old baselines rebuilt once).
  • maxAutoInjectPerTurn silently degraded to a per-agent lifetime cap: ToolExecution has no urn field, so the per-turn counter never reset - in long paper-writing sessions, new issues stopped being injected after the first two notifications. The counter now resets at �gent/turn-stopping (the real DSH turn boundary).

Fixed (P1/P2)

  • isPaperFile substring false positives:
    ewspaper-notes.md, synthesis-draft.md, coverage-report.md, paperwork.md were auto-audited as papers - English hints now use character-boundary matching.
  • Profile detection alignment:
    evision_notes.md/Supplementary_revision_notes.md -> manuscript,
    eviewer2_comments.md/
    eviewer 2 comments.md -> review, my_notes.md/draft_notes.md -> notes,
    evision_response.md -> rebuttal (previously unknown, running the full rule set on the wrong document type).
  • we-have-changed missed "we have now updated";
    ule-of-three missed sentence-initial capitals.
  • State write failures are no longer silently swallowed (queueSave reports via ctx.logger.warn).
  • Same-paragraph duplicate hits are now all reported (capped by maxHits), using a cloned regex so shared
    ule.pattern.lastIndex is never mutated.
  • An Appendix / Supplementary section after References is scanned again (previously swallowed as reference).
  • writing_audit gains the projectResidueTerms parameter (per-call project vocabulary), matching what the rule message already told users.
  • Section detection derives the base heading level, so # Title + ## Sections layouts support cross-section detection; sub-headings never split a top-level section.
  • Plugin version single-sourced (PLUGIN_VERSION); developer-process residue ("GPT P0/P1") removed from comments.

Tests & infrastructure

  • 68 -> 105 assertions: fingerprint-stability regression (the P0), isPaperFile word boundaries, profile edge cases, multiple hits per paragraph, # Title + ## Sections, Appendix-after-References, "we have now updated", capitalized rule-of-three.
  • GitHub Actions CI (build + 105 tests on push/PR), npm publish workflow (tag-triggered, needs NPM_TOKEN secret).

epository/homepage/�ugs/packageManager/engines metadata; full English README with a real writing_audit output demo; CHANGELOG.md; SECURITY.md.

Full changelog: https://github.com/xmutfyh/dsh-plugin-writing-guard/blob/master/CHANGELOG.md