Skip to content

Releases: Juneo-Lab/decision-forge

Decision Forge v0.3.2

Choose a tag to compare

@github-actions github-actions released this 03 Nov 10:11
d9f2bd4

Version 0.3.2 keeps published families in their splits across dataset versions and sends rule
conflicts that appear only at generated dimension values to review. Both fixes change what builds and
reviews produce: commit the new project.splits.lock.json next to each specification, regenerate
plan-recipe plans, and record conflict reviews again.

Changed

  • Consolidate duplicated pipeline, CLI, ingestion, provider, and workflow code without changing any
    dataset, export, plan, review fingerprint, or ingestion output, and cover twelve CLI failure paths.
  • Update GitHub Actions, mypy, and pre-commit hooks.
  • Tell the project's story in the README and a new Why Decision Forge page: the missing
    trust layer for AI agents, the three kinds of organizational data it requires, and where Decision Forge
    fits in the data → model → organization stack.

Fixed

  • Keep every published family in its split across dataset versions (#35). Rebuilding with build after
    adding scenario families could move existing families between train, development, and test, leaking
    held-out examples into training. The first build now records each family's split in a split lock next
    to the specification (project.splits.lock.json); later builds keep locked families in place, give
    new families a stable per-family split, and remember removed families. build --locked-splits fails
    instead of creating or changing the lock. Plans from plan-recipe made with older versions must be
    regenerated.
  • Send allow/deny rule pairs to review when they overlap only at generated dimension values (#36). Conflict
    witnesses were searched in seed states alone, so an override that appeared only in a generated
    situation was labeled without review. The gate now searches every situation the build samples and
    also queues pairs whose conditions cannot be proven disjoint, since synthesis can reach new states.
    Conflict items report overlap, witness_count, and up to five witnesses with their dimension
    values; existing conflict reviews must be recorded again. Thanks to sunxiuguo for an independent fix in #44.
  • Attest only the wheel and sdist in the release workflow; uv build also writes dist/.gitignore.

Decision Forge v0.3.1

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:43
84dce48

Version 0.3.1 adds office, HTML, tabular, and OCR ingestion, fixes several integrity and portability
issues in the data pipeline, and is the first release built and attested by the release workflow.
Ingestion metadata has changed; recompile corpora into new output directories.

Added

  • Add automatic source format detection and DOCX, XLSX, PPTX, HTML and CSV/TSV parsers with locations.
  • Add image and per-page PDF OCR through local RapidOCR/PP-OCR small models, Tesseract, and explicitly
    selected OpenAI-compatible vision endpoints. Keep model weights local during ingestion.
  • Preserve OCR model identity, confidence, bounding boxes, access metadata, cache integrity and attempt
    journals. Require an explicit flag for OCR service calls and retain the business review gate.
  • Add real local PP-OCR inference tests and a fictional seven-format example generator.
  • Add a tag-triggered release workflow that verifies version consistency, runs the test suite, builds and
    smoke-tests the wheel, attests build provenance, creates a GitHub release from the changelog, and
    optionally publishes to PyPI through trusted publishing.
  • Ship a py.typed marker so downstream type checkers use the package's inline annotations.
  • Add project URLs, supported Python versions, and typing classifiers to the package metadata, and
    repository links to the citation file.
  • Add opt-in dependency review on pull requests (DEPENDENCY_REVIEW repository variable), CodeQL analysis
    for Python and workflows, and OpenSSF Scorecard.
  • Declare the type/ and area/ label taxonomy in .github/roadmap.json; the roadmap publisher now
    creates and updates those labels and applies them to roadmap issues without removing triage labels.
  • Label pull requests by area automatically from the files they change.
  • Add .editorconfig and .gitattributes (LF line endings, generated experiment artifacts), and a
    definition-of-done checklist to the pull request template.

Changed

  • Ingestion metadata and default format detection have changed. Recompile into a new output directory;
    existing content-bound reviews are not transferred to newly parsed source snapshots.
  • Bound archive expansion, image pixels, page counts, spreadsheet traversal and normalized output.
  • Run CI on pull requests, merge queues, and main only, cancel superseded pull request runs, bound every
    job with a timeout, and expose a single CI result status for branch protection.
  • Group Dependabot updates so related upgrades land in one lock-file change, and track pre-commit hooks.
  • Validate workflow and Dependabot files in pre-commit.

Fixed

  • Fix compile-corpus failing with "Source content hash changed" after spending its model budget when a
    CSV/TSV, spreadsheet, office, HTML, PDF, or JSON/YAML value contains carriage returns. Parsed text now
    uses \n line endings so stored snapshots read back with the recorded hash.
  • Re-derive every model-visible field of imported synthesis rows: load_expansion now rejects rows whose
    question, policy context, candidates, verdicts, or ID differ from what the project produces, even when
    accepted.jsonl and its digest were rewritten together.
  • Accept compiler and corpus evidence whose quote differs from the source only in whitespace runs. Such
    quotes were bound during compilation but produced a project.json that failed validation on load.
  • Count the recipe planner's available pool after the duplicate removal a build applies, so plan-recipe
    no longer reports quotas as feasible that build --recipe-plan then rejects.
  • Hash exported JSONL files and Data Designer outputs as UTF-8 regardless of the platform locale.
  • Close SQLite connections after runtime event ingestion, open the read-only event store through a
    properly escaped file URI, and report missing or empty event stores as CLI errors instead of tracebacks.
  • Report non-object decision bindings in evaluate-decisions as a CLI error instead of a traceback.