Repository navigation
Releases: AmethystLuna/dsh-model-everything
Release list
v0.5.0 — 架构可视化:一个新的组件
架构可视化:一个新的组件
0.5.0 把「画图」做成插件的第三个组件——和平共处是刻意的:它不带引擎,关掉另两行照样能画。一个只想要「把 Mermaid 画出来」的部署,装同一个包、只开这一行就够。
三个工具,三个不同的问题
| 工具 | 回答 | 不回答 |
|---|---|---|
diagram_render |
这张图长什么样 | 图里说的系统对不对 |
diagram_review |
每个包多宽、嵌套多深、整图多少节点 | 这些包该不该存在 |
diagram_diff |
哪个边界新增/消失/改名/换父组,哪个组件换了归属 | 这个改动是不是改进 |
父子分组是一等公民
- Mermaid
subgraph与 PlantUMLpackage都读成边界,边界可嵌套;布局按「组内竖排、父组包住子组」算——成员飘在包外的分层图,并没有在表达包含关系。 - 点一个边界就把它折成一个盒子,再点展开。折叠是模型变换,连线会跟着改指到盒子上。
- 归属由解析器显式给出(
DiagramGroup.parent),布局只查表;手写模型没填时才退回推断,且有父不存在 / 成环 / 多组声明三种守卫。
画不了的行会说清楚
序列表、类图、甘特图、click/classDef,以及 PlantUML 的 actor/note,一律按行号拒绝。悄悄丢掉生命线的时序图看起来是完整的,这比不画更糟。
深浅色与配色
背景亮度决定用深色板还是浅色板;四套方案:default、github(Primer 真实色值)、high-contrast、print。底色画在 SVG 里,所以换皮肤也改不了图的对比度。
右栏白板
独立标签页:贴源码就出图,可缩放、适配宽度、切配色、点分组折叠。不读任何工具结果,所以工具那一侧怎么改都影响不到它。
其它
- 新增技能
model-everything-diagram,路由语料 103 条用例 / 8 个技能。 - 渲染器拆成「一份模型 + 每记法一个解析器 + 布局/绘制/输出」,五个纯模块 100% 语句与分支覆盖。
- 在 DSH
0.2.1-rc.4上完成完整的兼容性七步(安装、挂载、内容、启动、真实调用、卸载),并记录在DSH-COMPATIBILITY.md。这一轮抓到并修掉一个真缺陷:scheme参数枚举少了一套配色,rc.4 的参数校验直接拒绝。
升级
无需改动:0.4.x 直接升,没有删除或重命名。
0.3.0 — automata, cards, one routing table
A new family, a card every report carries, and one routing table the documents and the code both read.
Added
model_automaton_verify— decides a finite-word language: empty, unreachable, trap states, and
the relation to another automaton (equivalent,subset,superset). A failed relation returns the
shortest witness word, replayable through both machines. Nine check codes; a search that hits its
product cap reportsAUT009_UNDECIDEDrather than claiming equality.- A card for every report. Each report tool projects a small payload — verdict, counts, the first
finding, the next step — and renders it as a card, while the model keeps the full text. Two views over
one value, not a second computation. - One routing table (
src/routing.ts): what each tool owns and which tool takes the adjacent case.
The card carries it, and the toolset map is generated from it — the generator refuses to write a map
for a tool the table does not cover.
Changed
uml_structure_verifystates what the graph is (and can build it from a source tree with
repoPath);model_design_reviewjudges the design against the rules it declared. The two
descriptions now point at each other, which took the routing corpus from 32/36 to 36/36.- A truncated search now reports an escalation instead of suggesting a larger
maxStates: reduce the
model, then SPIN for partial-order reduction, NuSMV for symbolic search, CBMC for bounded SAT. - The cost claim is stated by size: several times the baseline on a fixture of a few hundred lines,
back to 0.93x–1.11x on objects of tens of thousands of lines across hundreds of files. - The usage section is nine scenarios in 81 lines, each saying what to hand over, which field to read,
and what the tool does not do.
Verified
npm run check(lint plus every suite, including the new automaton, presentation, routing,
tool-routing and tool-contract suites) is green.- A mount round on dsh
0.1.7-rc.2: install through the profile's package manager, dump-config, the
packaged skills and locale, a headless boot with a bad key, a real report from the installed copy,
uninstall. Fourteen tools register; the row is gone afterwards. - Re-ran the one case with a measured advantage: 0.88x the baseline's cost across three trials, with
nine of nine plugin trials passing against the baseline's six of nine.
The tag points at the release commit. The two commits after it record the mount round and the
regression check; neither changes the published tarball.
dsh-model-everything 0.2.0
A model can come from a file, a truncated check can be printed on its own, and the text got smaller.
model_verify,model_datamodel_verifyandmodel_design_reviewtakemodelPath: the model comes from a JSON file in the workspace in any formatting. It is the alternative to an inlinemodel; passing both is refused, and the refusal is a report withran: false.check: "<id>"prints one check in full when the digest truncated it. The digest had promised that since 0.1.0 and no tool could do it.reportView: "full"is compact JSON instead of pretty-printed: the same object, 37% fewer characters on a large report.- States that share an ignored-event set print as one line with a count, not one line per state: the largest report in the evaluation went from 4,941 to 3,636 characters.
- The entry skill says the same thing in fewer words (37,478 to 31,000 characters) and no longer repeats the tool descriptions or the report fields the model already has.
- The README's
cordis.patch.ymlexample was wrong: a row withnameinserts a second row instead of overriding the first one's config. It now shows the id-only override that was verified.
Measured on dsh 0.2.1-rc.2: install from the packed tarball, both rows mounted with the gate enabled, model_verify answering through modelPath and inline, check printing, uninstall leaving no row. Evidence in DSH-COMPATIBILITY.md.
dsh-model-everything 0.1.0
First published release.
A modelling and review toolset for designs, plans and code: the claim is turned into a model and the model is decided, instead of the answer being reasoned out again.
- Verification: one machine (states, transitions, invariants, budget/deadline/probability checks), several machines composed (handshakes, deadlock, and a shared location decided - C3 declaration, C4 unordered write, C5 lost update), refactoring regression (before/after models, deadlock and invariant continuity).
- Data models and migrations: keys, domains, referential integrity, migration coverage, rollback symmetry, before/after data equivalence.
- Design review: layering, responsibility ownership, substitutability, interface width, plus the graph's shape (cycles and the fewest edges that break them).
- Interleaving scan: mines concurrency claims across five families and routes each to the checker that can decide it; it does not prove safety, and says so.
- Diagrams: render, parse, review and round-trip every UML 2.5 family the notations can carry; component/package/class/deployment drawings are audited as dependency graphs.
- Export to UPPAAL, TLA+, PRISM and SPIN; report diffing for a change that must not move the behaviour.
Seven skills carry the doctrine and route each question to its domain. An optional second component injects one routing prompt at the start of a session; it is on by default and can be switched off per deployment.
Compatibility is measured, not assumed: DSH-COMPATIBILITY.md records one row per dsh release, including the row for this published artifact.