Skip to content

docs(changelog): complete v0.11.0 entry with ENIP analyzer + MITRE ICS detections#340

Merged
Zious11 merged 2 commits into
developfrom
docs/changelog-v0.11.0-complete
Jun 29, 2026
Merged

docs(changelog): complete v0.11.0 entry with ENIP analyzer + MITRE ICS detections#340
Zious11 merged 2 commits into
developfrom
docs/changelog-v0.11.0-complete

Conversation

@Zious11

@Zious11 Zious11 commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

The v0.11.0 CHANGELOG entry published with the release PR (#337) only documented the EC-X1/EC-X2 carry-buffer direction-split and EC-X2 saturating_sub bug fixes. The headline feature — the new EtherNet/IP (ENIP) + CIP protocol analyzer — was entirely absent from the entry, leaving the ## [0.11.0] section incomplete and misleading for anyone reading the changelog to understand what shipped in this release.

This PR completes the entry by adding the full ENIP/CIP feature documentation with verified PR numbers.


What Changed

File: CHANGELOG.md only — +111 lines, no source or test files touched.

Added to ## [0.11.0]### Added section (new)

Added to ## [0.11.0]### Changed section (new)

Added to ## [0.11.0]### Fixed section — ENIP-specific fixes (new bullets prepended before existing EC-X1/EC-X2 bullets)

Preserved unchanged


Traceability

Element Reference
Feature Feature #316 (ENIP analyzer)
Stories STORY-130 through STORY-139
PRs documented #317#334 (ENIP feature), #335/#336 (EC-X1/X2/desync fixes)
CHANGELOG sections Added, Changed, Fixed under ## [0.11.0]
Footer links Intact — not modified

CI Gate Notes

This repo has a green-doc-tense CI gate (bin/check-green-doc-tense) that rejects aspirational/future-tense wording ("will", "planned", "future") in doc contexts. The CHANGELOG entry was authored in present/past tense throughout (e.g., "analyzes", "parses", "added", "corrected"). If this gate fails, do not bypass — stop and route a fix.


Pre-Merge Checklist

  • Diff is CHANGELOG.md only (+111 lines)
  • All version sections other than [0.11.0] untouched
  • Footer compare links intact
  • Existing Fixed bullets preserved
  • PR numbers verified against merged PRs in this repo
  • green-doc-tense gate: entry authored in present/past tense only
  • CI checks green (pending)
  • Squash-merge into develop

Zious11 added 2 commits June 29, 2026 08:14
…S detections

Rewrites the incomplete [0.11.0] section (which only listed EC-X1/EC-X2 bug
fixes) to reflect the full release: the headline EtherNet/IP + CIP protocol
analyzer (STORY-130..139, PRs #317#334), five MITRE ATT&CK for ICS technique
detections (T0846, T0888, T0858, T0816, T0836, T0814), new CLI flags
(--enip, --enip-write-burst-threshold, --enip-error-burst-threshold), session
summary, cargo-fuzz harnesses (PR #332), real-pcap E2E tests (PR #333), green-
doc-tense CI gate (b9b2e93), ENIP source-IP attribution fix (PR #328), and the
summarize-open-flows fix (PR #330). Existing EC-X1/EC-X2/desync-latch bullets
preserved verbatim. Footer links unchanged.
Fix four PR reference errors verified against GitHub:
- STORY-131 dispatcher integration: #316#318
- STORY-135 CIP command detections: #325#324
- Green-doc-tense CI gate: bare b9b2e93 → PR #321 (with commit retained)
- PR range in headline bullet: #316#334#317#334 (#316 is the epic issue, not a PR)
@Zious11 Zious11 merged commit ab0b388 into develop Jun 29, 2026
11 checks passed
@Zious11 Zious11 deleted the docs/changelog-v0.11.0-complete branch June 29, 2026 13:23
Zious11 added a commit that referenced this pull request Jun 29, 2026
…HANGELOG-FULL-RANGE-001 lesson + STORY-143

Post-release correction record (docs-only, develop only):
- v0.11.0 CHANGELOG entry initially omitted the ENIP analyzer epic (STORY-130..138,
  PRs #317-#334); corrected via PR #339 (footer links) + PR #340 (complete entry).
- GitHub v0.11.0 release notes edited to match (40 ENIP/MITRE markers confirmed).
- Release tag/commit unchanged; main CHANGELOG catches up on next gitflow back-merge.

Lesson codified (cycles/feature-enip-v0.11.0/lessons.md):
- RELEASE-CHANGELOG-FULL-RANGE-001: release prep MUST enumerate git log <prev-tag>..HEAD
  --first-parent to derive changelog content; hand-summarized "recent wave" lists are not
  a substitute.

Process-gap disposition (STORY-143, E-11, draft, 3 pts):
- Draft story stub created at stories/STORY-143.md (wave TBD, v0.12.0 planning).
- Goal: add policy DF-RELEASE-CHANGELOG-RANGE-001 or update CLAUDE.md release-workflow
  section to mandate commit-range enumeration + PR-range completeness anchor.
- STORY-INDEX.md v3.1 -> v3.2: total_stories 95->96, E-11 count 2->3 (pts 8->11),
  epic-table TOTAL 622->625. Wave-table scheduled 614 unchanged (STORY-143 wave-TBD).

Decision D-301 recorded in STATE.md. DO NOT REDO guards added.

Count-propagation sweep: updated 4 files. Stale "95 stories" / "STORY-INDEX v3.1"
references corrected in STATE.md (line 64) and STORY-INDEX.md frontmatter/arithmetic.
Historical D-294 decision row retains "v3.1 (95 stories/64 waves)" -- immutable audit
trail (records state at that past decision point; intentionally not updated).
Zious11 added a commit that referenced this pull request Jun 29, 2026
Pipeline IDLE post-v0.11.0 release. STATE.md rewritten as lean, self-
contained resume document. Decisions D-267..D-301 archived to cycle file.

Changes:
- STATE.md: compacted from 280 → 252 lines (WARNING range; below 500-line cap)
  - Frontmatter corrected: document_type/mode/phase fields now standard-compliant
  - develop_head corrected: ecbcd26ab0b388 (PRs #339+#340 had landed)
  - factory_artifacts_head: resolved from placeholder to d67eb27
  - Full SHAs recorded for main, develop, factory-artifacts
  - Tag facts: annotated tag object c50d89e → commit 3072e82 verified
  - Stale "Do NOT re-X" block removed (30+ historical lines archived)
  - Verbose inline decisions D-270..D-299 removed from STATE.md body
  - D-300/D-301 kept as terse summary rows in decisions table
  - EXACT RESUME POINT block updated with verified facts
  - Open human question (main CHANGELOG fast-track y/n) explicitly surfaced
  - Backlog table: STORY-143, SEC-001, TLS-CLIENTHELLO-FRAG-001 (CRIT candidate
    recommended first), edge-hunt register, design notes, Wave-64 NITs, process watch
  - Session Resume Checkpoint updated with current state

- cycles/feature-enip-v0.11.0/decisions-archive.md: extended D-228..D-266 →
  D-228..D-301 (appended D-267..D-301 with full narrative text)

Verified live facts (git/gh, not trusted from memory):
- origin/main = 3072e82
- origin/develop = ab0b388
- v0.11.0 tag → commit 3072e82 (annotated; GitHub release: not draft, not prerelease, Latest)
- Cargo.toml version on both branches: 0.11.0
- Open PRs: only #311 and #325 (Dependabot, awaiting human triage)
- Worktrees: main + .factory (active) + 2 stale scratch (enip-edgecase-verify, enip-f6-hardening)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant