Skip to content

Completed AX remediation - #569

Open
spoenemann wants to merge 6 commits into
mainfrom
ax-improvements
Open

spoenemann wants to merge 6 commits into
mainfrom
ax-improvements

Conversation

@spoenemann

Copy link
Copy Markdown
Contributor
  • Align design docs with the AX lifecycle and promote two invariants to tests
  • Enable strict TypeScript, gate lint, and add structural sensors
  • Close test coverage gaps (a lot more unit tests in *.spec.ts)
  • Update changelogs and add sprotty-library community files
  • Clean up examples code
  • Complete the AX remediation roadmap

spoenemann and others added 6 commits September 7, 2026 14:43
… tests

Design docs are now kept true to the design as built: AGENTS.md couples a
design change to a dated amendment in the same change, the index states the
rule, and each doc gained Invariants (with enforcing spec or "no sensor")
and Amendments sections. Two invariants got sensors: loadDefaultModules must
not load the opt-in edge route postprocessor modules, and edge culling tests
only the route bounding box by design. The stale SRoutableElement name is
annotated, the level-of-detail statement is corrected (the framework enables
it, adopters implement it), ARCHITECTURE.md keeps only invariants and
pointers where it duplicated the rendering doc, and trust labels are
re-dated after re-verification.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Works off the foundational items of the AX remediation roadmap:

- tsconfig: strict mode on, strictPropertyInitialization deliberately off
  (reason recorded inline); the 35 resulting errors fixed in code. Public
  type changes: Deferred.resolve no longer has an optional parameter, and
  AnimationFrameSyncer tasks always receive a timestamp.
- ESLint: every rule promoted to error, --max-warnings 0, no-op entries
  dropped, eslint-config-prettier / eslint-plugin-no-null /
  eslint-plugin-header removed.
- New test/ directory with three structural sensors, each with a
  self-correction message: full license header, @injectFromBase() on
  subclasses of classes with injected members, and package layering
  (sprotty-protocol has no runtime deps, sprotty-elk confines inversify
  to src/inversify.ts). Wired into the build, root tsconfig, and lint.
- publish.yml: vestigial dry-run input and the Test step condition removed;
  tests already gated publishing.
- ADR-0003: dated addendum for dependency-forced removals; ADR-0007,
  ARCHITECTURE.md, and AGENTS.md updated for the new sensors.
- Roadmap: shipped items checked off, four items closed as rejected or
  moved to the website repo, follow-ups recorded.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add co-located specs for the untested feature modules (edit, expand,
decoration, button, command-palette, fade, open, projection, undo-redo),
the UI extension base and registry, and the pointer and touch tools.
Give sprotty-library a tsconfig.test.json wired into the build and a
flowchart spec that renders every registered element type.

Coverage is sized to the contracts: command execute/undo/redo
round-trips, feature guards, listener-to-action mappings, DI wiring, and
the CSS markers views emit, without SVG path snapshots.

Fix three defects the new specs exposed: TouchTool and the command
palette provider registry folded with a reduce without initial value and
threw on empty lists; ExpandButtonView bound class-enabled as a string
literal, so the enabled class ignored the button state.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The v2.0.0 sections of the four package changelogs now cover everything
merged since v1.4.0: ESM-only packaging (#515), InversifyJS 8 (#561, the
#XXX placeholders resolved), the deprecated-API sweep (#566) with a
per-symbol replacement list, touch and pointer support (#475, #488), the
bug fixes, the strict-mode signature changes, and the npm/OIDC tooling
moves (#534, #549). Headings read "(unreleased)"; the month is set at
release.

sprotty-library gains README.md, CHANGELOG.md, and LICENSE, which the
published package lacked, and is listed in the root changelog index and
README. The AX roadmap records the outcome; the v2 exec plan's
deprecated-API item is closed against #566.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Delete the stale styles.css in custom-views-showcase (an older revision of
diagram.css that nothing referenced), drop the duplicate id="sprotty-app"
from multicore.html, rename multicore.ts to standalone.ts and the
distributed random-graph page to random-graph-distributed.html so file
names follow the examples convention, pass `context` instead of the
container to configureModelElement in both random-graph di.configs, and
remove the phantom "css" entry from sprotty-library's package files.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Move the plan to docs/exec-plans/completed/. The remaining open items are
dropped by maintainer decision, except the ESLint 9 / flat-config migration,
which moves to a new docs/exec-plans/tech-debt-tracker.md as tolerated,
non-blocking debt; AGENTS.md points at the tracker. The examples-cleanup item
no longer cites the css file it deleted, so the doc check passes again.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@spoenemann
spoenemann requested a review from gfontorbe September 9, 2026 11:40
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