Skip to content

v6.10.2

Latest

Choose a tag to compare

@terrygzhou terrygzhou released this 25 Oct 00:51
· 8 commits to main since this release

Added

  • ArchiMate parity in the generated Codex extension (gloryev EYW-345 incident, fix 1): running python scripts/converter.py regenerated extensions/arckit-codex/ so the ArchiMate command skills, the ADM ArchiMate templates, and skills/plantuml-syntax/references/archimate.md are now present, matching the canonical Claude source tree. Guarded by tests/codex/test_archimate_codex_parity.py (7 checks).

  • Post-build ArchiMate diagram consolidation (EYW-348 f): arckit build now sweeps projects/**/*.md for inline PlantUML blocks after a full build and materialises them under each project's diagrams/ folder as .puml sidecars plus self-contained .svg renders (pinned jar search: explicit → PLANTUML_JAR → newest ~/.local/share/arckit/tools/plantuml-*.jar), with a manifest.json making re-runs idempotent. Missing jar/Java degrades gracefully (.puml written, SVG recorded pending); rendered SVGs are audited and non-W3C external URLs are flagged as self-containment violations. Skippable with --no-diagrams.

Fixed

  • Diagram sweep cross-linking + canonical consolidation (gloryev EYW-345 incident, fixes 2 and 3): consolidate_project_diagrams() now records source_doc (the originating markdown for each rendered diagram), docs_without_blocks (artefacts with no PlantUML blocks), stale_folders (per-phase diagram folders superseded by the canonical {P_<ID>}-{NAME} layout), and orphaned (SVGs with no matching manifest block) in the build summary, and _render_puml() now passes -tsvg to the pinned jar (PlantUML's default output is PNG, so the sweep's .svg success check silently failed before this fix). Guarded by tests/plugin/test_diagram_sweep_linking.py (3 checks), tests/plugin/test_diagram_render_svg_flag.py (1 check), and tests/plugin/test_diagram_canonical_consolidation.py (3 checks).
  • Local-LLM builds aborted mid-target by the hard tool-iteration cap of 20 (EYW-348 a): the cap is now configurable — default raised to 96, overridable via llm.max_tool_iterations in the ArcKit config and (highest precedence) the ARCKIT_MAX_TOOL_ITERATIONS env var; invalid values warn and fall back.
  • Targets declared complete on model stop even without the declared output artifact (EYW-348 b): a target with a declared output now only completes when the expected artifact exists on disk; a stopped-but-quiet model fails the target (--resume re-runs it) instead of a phantom completion. Advisory targets (no declared output) still complete on a clean stop.
  • Empty input_artifacts on resume bloated context into degenerate re-read loops (EYW-348 c): dependency resolution now expands placeholders cumulatively, checks state paths raw and project-relative, falls back to recipe-disk resolution, and finally to a projects/**/*.md basename sweep; an unresolvable required dependency now prints a loud warning instead of silently running the target without input context.
  • Resume re-derived P_<ID> placeholders back to {P}-{ID}, clobbering build-config/state values so artifacts landed in per-phase folders (EYW-348 d): auto-derivation now only fills placeholder keys never explicitly supplied (persisted state, build config, or user override) and only when the {P} base value actually changed.
  • SIGTERM mid-wave killed piped builds (EYW-348 e): arckit build now handles SIGTERM/SIGINT gracefully — the in-flight wave finishes, state is persisted (per-wave git commit already did), and the build exits 143 with a --resume hint; a second signal hard-exits. Log-file redirection still recommended for harnesses that kill the whole process group.