docs(changelog): resolve 0.9.2 merge conflict, dedupe sections, add missing post-0.9.2 entries#932
Conversation
…issing post-0.9.2 entries Audit pass against PRs merged since v0.9.2 (2026-04-23) found 4 structural defects and ~10 missing user-facing entries. Structural fixes ---------------- - Resolve unresolved git merge-conflict markers in [0.9.2]/Fixed. The HEAD-side block duplicated entries already shipped in [0.9.0] (#780, #661, #731, #784, #638, #785) and one entry that actually belongs in [Unreleased] (#812 transport_type validation). Kept only #804 as the legitimate 0.9.2 fix. - Merge two duplicate '### Fixed' subsections in [Unreleased] into one (Keep a Changelog requires unique section headers). - Merge two duplicate '### Fixed' subsections in [0.9.1] into one. - Move misplaced 'apm experimental' entry out of [0.9.1] (#845 was closed unmerged; the feature actually landed via #849 after the 0.9.2 cut, so it belongs in [Unreleased]). Added missing post-0.9.2 entries to [Unreleased] ------------------------------------------------ - Added: apm experimental flag registry (#849) - Changed: shared/apm.md bumped to apm-action@v1.4.2 (#904) - Changed: CI docs PR ref attached to existing entry (#874) - Fixed: Copilot adapter transport_type validation (#812, #791) - Fixed: policy cache_dir path-traversal false-positive on Windows (#895) - Fixed: load_policy OSError on macOS PATH_MAX (#860, #848) - Fixed: merge_group trigger so gate reports inside merge queue (#921) - Fixed: apm update env sanitisation PR ref attached (#899, #894) - Removed: ci-integration-pr-stub.yml PR ref attached (#875) - Folded #905 / #907 / #908 into the existing #882 panel-review entry (sequel hardening fixes for the same skill) and reworded the entry so it now answers 'so what'. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Cleans up CHANGELOG.md to restore Keep a Changelog structure by removing accidental merge-conflict artifacts, deduplicating repeated subsections, and adding missing post-0.9.2 entries so the Unreleased section accurately reflects recent merged work.
Changes:
- Removed unresolved git merge-conflict markers from the
0.9.2section. - Deduplicated duplicate
### Fixedsubsections (notably inUnreleasedand0.9.1). - Added missing
Unreleasedentries for recently merged PRs (e.g.,apm experimental, merge-queue gate, policy/cache fixes).
Show a summary per file
| File | Description |
|---|---|
| CHANGELOG.md | Fixes structural breakage (conflict markers + duplicate headers) and updates Unreleased entries to include missing PR references since 0.9.2. |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 0
APM Review Panel VerdictDisposition: APPROVE (no required actions before merge) Per-persona findingsPython Architect: PR is purely a markdown document edit -- no Python classes, modules, or functions modified. Per the review contract, I substitute a OO / class diagram (CHANGELOG problem space) classDiagram
direction LR
class CHANGELOG {
<<IOBoundary>>
+unreleased: Section
+versioned_sections: List[Section]
+resolve_conflict() void
+dedupe_sections() void
}
class Section {
<<ValueObject>>
+heading: str
+subsections: List[Subsection]
}
class Subsection {
<<ValueObject>>
+kind: str
+entries: List[Entry]
}
class Entry {
<<ValueObject>>
+description: str
+pr_refs: List[str]
}
CHANGELOG *-- Section : contains
Section *-- Subsection : contains
Subsection *-- Entry : contains
note for CHANGELOG "This PR: removes conflict markers,\nmerges two Fixed subsections into one,\nmoves apm-experimental to Unreleased"
class CHANGELOG:::touched
classDef touched fill:#fff3b0,stroke:#d47600
Execution-flow diagram (post-PR reader path through CHANGELOG.md) flowchart TD
A["[I/O] Open CHANGELOG.md"] --> B["Unreleased Added\n(pr-description-skill, apm-experimental, includes,\naudit-ci, apm-triage-panel)"]
B --> C["Unreleased Changed\n(find_primitive_files, lockfile shape, apm-review-panel,\nCI smoke gate #878, CI docs #874, shared/apm.md #904)"]
C --> D["Unreleased Fixed -- single consolidated subsection\n(user-scope init_link_resolver #850, audit-blindness #887,\npacker-leak #887, apm-update env-sanitize #899,\nCopilot transport #812, _get_cache_dir #895,\nload_policy #860, merge-gate merge_group #921)"]
D --> E["Unreleased Removed\n(ci-integration-pr-stub.yml #875)"]
E --> F["[FS] 0.9.2 -- no conflict markers, clean section"]
F --> G{"Conflict-block entries\nalready in 0.9.0?"}
G -->|Verified YES| H["VS Code adapter http #654 in 0.9.0\nPreserve git ports #665 in 0.9.0\nDetect port-SCP #787 in 0.9.0\napm install global MCP #638 in 0.9.0\nToken resolution by port #788 in 0.9.0\napm install drops skills #780 in 0.9.0"]
H --> I["[FS] 0.9.1 -- apm-experimental removed\n(correctly moved to Unreleased)"]
I --> J["[I/O] Done -- no data loss confirmed"]
Design patterns
Structural findings:
CLI Logging Expert: No CLI output code, CommandLogger, DiagnosticCollector, or DevX UX Expert: No CLI command surface, flags, help text, or first-run flow is changed. Three observations: (1) Moving Supply Chain Security Expert: No changes to dependency resolution, lockfile integrity, path security, token handling, or auth. Security entries in Auth Expert: Not activated -- PR only modifies OSS Growth Hacker: CHANGELOG.md is a direct conversion surface -- raw material for release narratives and the upgrade-decision artifact for existing users. Three growth observations: (1) Side-channel to CEO: no CEO arbitrationAll five mandatory specialists agree: this is a well-scoped, factually correct CHANGELOG cleanup with no regressions and no dropped entries. The three structural changes -- deduplication of Required actions before mergeNone. Optional follow-ups
|
…issing post-0.9.2 entries (microsoft#932)
TL;DR
CHANGELOG.md is structurally broken on
main(unresolved git merge-conflict markers in [0.9.2], two pairs of duplicate### Fixedheaders) and missing entries for ~10 PRs that landed since v0.9.2. This PR is a pure docs cleanup -- no code changes.Problem
Audit pass against
gh pr list --state merged --search "merged:>=2026-04-23T10:06:53Z"(the v0.9.2 cut) surfaced four structural defects:CHANGELOG.mdin the[0.9.2] ### Fixedblock. The<<<<<<< fix-copilot-transport-validation-791side duplicated entries that were already published in[0.9.0](Install silently drops skills/agents/commands when package also ships hooks/*.json #780, [BUG] Ignores ssh://, tries https (Bitbucket Datacenter) #661, Using dependencies within non-default ports #731, [BUG] SCP shorthand with numeric port silently misparsed as repo path #784, Fixapm install --globalskipping MCP server installation #638, [FEATURE] Thread dep_ref.port into credential resolution (git credential fill) #785) and one entry that actually belongs in[Unreleased](fix: Copilot adapter validates remote transport_type (#791) #812 transport_type validation, merged 2026-04-24).### Fixedsubsections in[Unreleased]-- Keep a Changelog requires one### Fixedper release block.### Fixedsubsections in[0.9.1]-- same issue.apm experimentalentry in[0.9.1]referencing PR feat(cli): apm experimental - feature-flag registry with list/enable/disable/reset #845, which was actually closed unmerged. The feature landed via feat(cli): apm experimental - feature-flag registry with list/enable/disable/reset #849 on 2026-04-23T19:51, after the 0.9.2 cut, so it belongs in[Unreleased]/Added.Plus
[Unreleased]was missing entries for these merged PRs:apm experimentalflag registrytransport_typeinstead of writing garbage configload_policy()no longer trips macOSOSError [Errno 63]on YAML strings >1023 bytesmerge-gate.ymlreportsgateinside the merge queue (PRs no longer hang in queue)apm updateenv-sanitisation entry was missing its PR refci-integration-pr-stub.ymldeletion entry was missing its PR refapm-review-panel, folded into existing #882 entryApproach
Minimal, surgical edits to the
[Unreleased],[0.9.2], and[0.9.1]sections only. Pre-existing entries kept verbatim where they already met the convention. New entries written tight, answering "so what" for readers per.github/instructions/changelog.instructions.md.Skipped (not user-facing per the convention):
Validation
Modified region (lines 1-90) is ASCII-clean (the 213 non-ASCII bytes that remain are em dashes / curly quotes in pre-0.9.x history -- out of scope for this PR).
Net diff: +10 / -22 lines.
How to test
Read the new
[Unreleased]block end-to-end: every PR ref appears exactly once, every entry answers "so what".Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com