Skip to content

Releases: Guardantix/doc-lattice

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 17:58
982b83b

Added

  • reconcile now commits multi-file updates as one conflict-detecting durable transaction, recovers
    interrupted work automatically before real runs, and provides recovery-only --recover mode;
    init prints the corresponding transaction-artifact ignore patterns.
  • Empty ATX headings such as # and ## are now recognized and receive the same empty GitHub
    slug that github-slugger generates.
  • Document symlinks whose targets remain inside the project root are now supported. Aliases to the
    same resolved document are loaded once, while external targets are skipped with a warning and
    reconcile revalidates containment before writing.

Changed

  • Documentation ownership is consolidated: README.md owns the user contract, ARCHITECTURE.md owns
    durable decisions and module boundaries, CLAUDE.md routes contributors and agents, CHANGELOG.md
    owns history and migrations, and roadmap.md contains future direction only.
  • Internal: doc_lattice.cli is now a package with a frozen per-invocation runtime, focused
    command adapters, centralized output and error handling, and command-mirrored CLI tests. Runtime
    behavior is unchanged.
  • Internal: Markdown heading recognition and GitHub-compatible slug generation now pass through a
    documented adapter pinned to markdown-it-py==4.2.0 and github-slugger@2.0.0. The slug-strip
    and JavaScript Unicode 17 lowercase and contextual-casing compatibility data is generated from
    upstream. Section spans and the cache schema are unchanged, but existing version-2 load caches
    are rebuilt so parser-derived anchors and spans use the new adapter. Rare headings whose casing
    data was absent from Python Unicode 15.1 now receive the upstream-compatible section id.
  • Internal: the load cache module is now a phase-separated doc_lattice/cache/ package
    (schema/codec, store, lookup, run state). No user-facing behavior change; the cache file
    format is unchanged.

Fixed

  • Markdown files that open YAML frontmatter without a closing --- now fail with a
    source-naming tool error (exit 2) across cached and uncached loads instead of being silently
    omitted from the lattice. Existing version-1 load caches are rebuilt.

Removed

  • BREAKING (2.0): Removed the unsupported binding_layers configuration key. Migration:
    delete the key from 1.x configs; there is no replacement, and lint's fixed authority ladder
    is unchanged. Strict configuration now rejects the key.
  • BREAKING (2.0): Removed the silent --json alias from check, lint, impact,
    reconcile, and linear; impact, reconcile, and linear now accept --format human|json.
    Migration: replace --json with --format json. --indent now requires an effective
    --format json, and the former --json/--format github conflict rule is gone along with
    the alias.
  • Internal: removed the singular section_span helper in favor of the existing section_spans
    API.
  • Deleted completed design specs and implementation plans after recording their durable Linear,
    load-cache, and Markdown compatibility decisions in ARCHITECTURE.md. Also deleted the duplicate
    code-conventions guide and incomplete build log; their owners are CLAUDE.md and CHANGELOG.md.
    Version control retains the implementation history.

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 08:02
d816b32

Fixed

  • graph Mermaid output now assigns each node a collision-free identifier. Distinct node ids
    that sanitized to the same Mermaid-safe token previously merged into one graph node.
  • Heading anchor parsing now recognizes {#marker} only as a trailing heading marker
    (optionally followed by an ATX closing # sequence). An anchor-like token in the middle of
    heading text is no longer mistaken for the heading's explicit anchor.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 05:28
c68cd80

Added

  • Publish release wheels and source distributions to PyPI through GitHub Actions Trusted
    Publishing, with no stored PyPI credential.

Changed

  • Generated pre-commit and CI gates install an exact doc-lattice==1.0.0 PyPI requirement
    instead of cloning and building a tagged Git revision.
  • Release retries distinguish the current tagged commit from an ordinary unversioned merge,
    making GitHub Release and PyPI publication safe to resume after a partial failure.
  • Source distributions contain only package source, tests, license, README, build metadata, and
    Hatchling's required .gitignore.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 06:52
9ce8b1d

Changed

  • BREAKING: the project is renamed from game-lattice to doc-lattice. The engine was never
    game-specific; the name now matches its general purpose. In one release this renames the
    repository (https://github.com/Guardantix/doc-lattice, with GitHub redirects from the old
    URL), the distribution and package (doc-lattice / doc_lattice), the CLI executable
    (doc-lattice), the config file (only .doc-lattice.yml is recognized; no fallback), and
    the opt-in load-cache location (<cache_home>/doc-lattice/; old cache directories are
    orphaned and safe to delete). Doc sets themselves need no edits; lattice frontmatter
    (id, derives_from, authority, seen) is unchanged.

Migration (v0.8.x to v0.9.0)

Nothing breaks until you bump your pin: checked-in gates pin a tag
(uvx --from git+.../game-lattice@v0.8.0 game-lattice ...) and GitHub's rename redirect keeps
that resolving indefinitely. Upgrading the pin to v0.9.0 requires, in one commit:

  1. Rename .game-lattice.yml to .doc-lattice.yml (contents unchanged).
  2. Regenerate the checked-in pre-commit hook and CI workflow (re-run doc-lattice init
    codegen, or by hand update the repo URL, the @v0.9.0 pin, and the executable name
    game-lattice to doc-lattice in each invocation).
  3. Any Python code importing game_lattice switches to doc_lattice (the package is not on
    PyPI and no import consumers are known; listed for completeness).

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 03:55
48ca783

Added

  • Opt-in incremental load cache: set cache_key in .game-lattice.yml to skip re-parsing
    unchanged docs across runs and git worktrees, with byte-identical output to an uncached run by
    default; cache_trust_stat: true adds a faster stat tier for read-only commands under the
    documented mtime caveat, and reconcile always verifies content (#28).
  • check, lint, impact, and linear accept --indent N with JSON output (--json, or the
    equivalent --format json on check and lint), and the global --no-color option and the
    NO_COLOR environment variable both explicitly disable colored output, including the styling on
    help and usage-error text even when a terminal-forcing environment variable is set (#20).
  • check --format github and lint --format github emit escaped GitHub Actions error
    annotations with repo-relative file paths so findings attach inline to the offending doc in
    the pull request diff, while preserving the existing gate exit codes; both commands also accept
    --format human|json, and --json remains the JSON alias (#18).

Changed

  • Moved check, lint, and impact JSON builders beside their result types and centralized their
    human console output in a dedicated report renderer, leaving the CLI as dispatch-only wiring
    (#29).
  • Centralized CLI ProjectError handling behind the shared tool-error exit path (#30).
  • Internal performance: check and reconcile memoize target-content hashes within each run,
    avoiding repeated section extraction and hashing for edges that share a target (#25).
  • Reduced repeated load-path work by counting document lines once, reusing safe YAML loaders, and
    sharing newline normalization between section parsing and hashing (#27).
  • Moved reconcile phase-1 rewrite planning into the pure reconcile module via an injected reader
    (#31).

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 00:42
50d293c

Added

  • check --only STATE (repeatable) filters human and JSON output by edge state; the exit code
    still reflects every edge (#19).
  • graph --format json emits a machine-readable node and edge dump that matches the Mermaid and
    DOT edge collapsing (#21).
  • impact --depth N bounds the reverse walk, and impact --json entries now carry a depth
    field (#22).
  • reconcile --dry-run previews the plan without writing, and reconcile --json emits a
    machine-readable plan for both dry and real runs (#17).
  • The Linear client retries transient HTTP 429 and 5xx failures with bounded backoff, honoring
    Retry-After up to a 30 second cap (#24).
  • The version-sync guard now also checks README pinned install refs (game-lattice@vX.Y.Z)
    against __version__ (#34).
  • The release job now publishes a GitHub Release for each tag it cuts, with the body taken from
    the matching ## [X.Y.Z] CHANGELOG section; scripts/extract_release_notes.py (pure core
    version_check.changelog_section) extracts it and fails the release if that section is missing
    or empty (#47).

Changed

  • graph --format now rejects unknown formats with exit 2 instead of silently rendering
    Mermaid (#21).
  • Ancestor recording in the loader is a single stack pass instead of a quadratic scan (#26).
  • CI runs the code-quality job on both Python 3.13 and 3.14 (#33).

Removed

  • Unused datetime_utils helpers (local_now, parse_iso, format_iso); utc_now remains the
    single sanctioned current-time entry point (#35).