Commit Graph
30 Commits
Author SHA1 Message Date
archvillainette 75bfb9f042 fix(topdata): close invariant JSON roots
build-binaries / build-binaries (pull_request) Successful in 2m15s
test-image / build-image (pull_request) Successful in 37s
test / test (pull_request) Successful in 1m27s
2026-06-25 23:10:39 +02:00
archvillainette 84f64dc136 topdata: fix global validation regressions 2026-06-25 22:35:14 +02:00
archvillainette b7464bda4f feat(topdata): reject unsupported canonical json properties 2026-06-25 22:26:04 +02:00
archvillainette 16d5586587 Crucible: Fix Formatting Churn (#5)
test-image / build-image (push) Successful in 43s
test / test (push) Successful in 1m21s
build-binaries / build-binaries (push) Successful in 2m2s
build-image / publish (push) Successful in 13s
RC#1 — build wrote 2-space instead of .editorconfig's 4-space
- editorconfig_format.go: the glob translator escaped {/} as literals, so [*.{json,jsonc}]→indent_size=4 never matched any file and formatting fell back to [*]→2. Implemented real editorconfig brace expansion — {a,b,c} alternation and {n..m} numeric ranges. Nothing is hardcoded; saveLockfile already read .editorconfig, it just got the wrong section.

RC#2 — validate wrote a lockfile (it must be read-only)
- The three registry collectors persisted lockfiles as a side effect of collection; ValidateProject calls collection outside its snapshot guard, so the write leaked. Threaded a persistLocks bool through collectGeneratedRegistryDatasets and the damagetypes/itemprops/racialtypes collectors. Only buildNativeUnchecked (the real build allocator) passes true; validate, discovery, packaging queries, and wiki discovery pass false.

Tests added: editorconfig_glob_test.go (brace match + 4-space via brace glob), registry_readonly_test.go (read-only writes nothing; persist writes allocations).

Reviewed-on: #5
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
2026-06-17 07:57:54 +00:00
archvillainette 56c67132f3 claude: fold in old sow-tools 2026-06-13 09:49:29 +02:00
archvillainette 97f8427c4b Phase 5: scaffold Crucible (sow-tools) — dispatcher + builder shims, container, PR-first CI, fail-closed (D11, D19). 2026-06-11 20:36:13 +02:00
archvillainette dfdc47c2dc Global json adjustments 2026-06-05 16:35:14 +02:00
archvillainette c672a1ff33 Support for global.json files 2026-06-05 10:36:47 +02:00
archvillainette 16ed4fe47d Spellbook lists 2026-05-26 18:25:58 +02:00
archvillainette 37db91314b Minimum row 2026-05-25 14:50:01 +02:00
archvillainette 01ddcf8735 "first_null_row" configuration option 2026-05-25 09:47:36 +02:00
archvillainette 91ab34ddff Fix validator screaming about new columns 2026-05-24 12:06:47 +02:00
archvillainette 28bea40038 Error on duplicate keys 2026-05-15 23:02:33 +02:00
archvillainette f2ade14967 More tests 2026-05-14 21:20:31 +02:00
archvillainette 59994c8b29 Closing gaps and cleaning house 2026-05-14 21:08:38 +02:00
archvillainette 2cef662e8e Validation hardening 2026-05-14 15:01:04 +02:00
archvillainette 4fd0375608 replaced explicit masterfeats/feat base+lock path branches 2026-05-13 20:14:27 +02:00
archvillainette 4b55628ac8 Explicit masterfeats/feats removal 2026-05-13 19:32:41 +02:00
archvillainette 6daf5bf7a7 Opt-In Wiki Generation 2026-04-18 09:11:03 +02:00
archvillainette 338b4abf3b Optimization Pass 2026-04-18 08:57:33 +02:00
archvillainette 1e9a81a6cf Fix Generated Feat Identity Canonicalization 2026-04-17 21:35:54 +02:00
archvillainette d77b44c210 Fix lockfile generation, Key authoring hardening, and generic table injection 2026-04-17 20:43:07 +02:00
archvillainette 0c63dfc711 Family Expansions 2026-04-13 23:49:59 +02:00
archvillainette 129602a482 Change Output Locations 2026-04-13 15:05:43 +02:00
archvillainette bc708fc6b9 Native Wiki Generation 2026-04-11 12:21:29 +02:00
archvillainette 543945f099 Fix type extensions 2 2026-04-10 08:43:06 +02:00
archvillainette 9e13bb9bab Improved Logging 2026-04-09 21:56:53 +02:00
archvillainette 4f8bfc133a Native Workflow Support 2026-04-09 11:01:39 +02:00
archvillainette dc93feb176 Topdata Migration (#2)
Native topdata migration summary

- Replaced the legacy 2dabuilder runtime path with the native topdata builder.
- Native build, validate, compare, and convert flows now cover the canonical topdata pipeline.
- compare-topdata is now a native self-check; legacy reference-builder runtime usage was removed.
- Parts generation follows the native asset-scan contract and uses sow-assets via project asset resolution.
- Generated feat families, class-feat injects, masterfeat/successor expansion, and dataset-derived feat generation were brought to parity and regression-covered.
- Remaining mirrored datasets were migrated into native-owned canonical data while preserving lock IDs.
- normalize-topdata bridge behavior and migration-era ownership markers were removed.
- Documentation was rewritten around the native workflow and active contracts were cleaned up.
- Final hardening pass removed stale validator assumptions and cleaned ignored/generated artifacts for PR readiness.

Reviewed-on: https://gitea.westgate.pw/ShadowsOverWestgate/sow-tools/pulls/2
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
2026-04-09 07:14:01 +00:00
archvillainette d67b6e3f12 Add topdata bridge commands and handoff 2026-04-02 21:40:59 +02:00