Skip to content

[finding][devx] os migrate meta --from 17 buries a project's real findings under 240 generic protocol-18 notices, and marks default-flip conversions as "Applied" when the right action is usually no edit #20620

Description

@hotlong

Observed on a real upgrade: HotCRM 17.4.0 → 17.5.0, 2026-09-29

os migrate meta --from 17 printed 874 lines for HotCRM. It ended with "Migrated stack does not yet pass schema validation". The output contained:

  • 41 refusals (the actionable part);
  • 57 mechanical edits;
  • 240 "manual change" notices. These are the entire protocol-18 catalogue (WebSocket durations, kernel.advancedPluginLifecycle, …). None of them applies to this stack.

Three problems for an upgrader:

  1. Noise. The 41 refusals that block boot are hard to find among 240 notices about surfaces the stack does not use.
  2. Default-flip conversions are presented as edits to apply. The 13 flow-decision-mode-inclusive-explicit edits appear as "Applied". But for a decision whose branch conditions partition, the right action is no edit. Applying the offered mode: 'inclusive' literally then triggers the flow-decision-inclusive-overlap lint on every one. All 13 of HotCRM's decisions partition.
  3. No write-back. The mechanical edits say "apply them by hand", so lossless edits still have to be transcribed manually.

Asks

  1. Filter the notices to the surfaces the stack actually uses, or at least group them after the actionable findings.
  2. Mark semantic default flips as review items, not "Applied".
  3. Offer a source-writing mode for lossless mechanical edits.

Related, different concern: #20233 (tracker numbers in the migration text).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions