Commit Graph
24 Commits
Author SHA1 Message Date
archvillainetteandClaude Sonnet 4.6 d2c3b7c719 fix(topdata): drop misleading SkipLFS option field; --skip-lfs sets env directly
CRUCIBLE_SKIP_LFS env is the single skip mechanism; BuildAndPackageOptions
had a dead SkipLFS field that implied the option propagated through the build
API but was only ever env-bridged in the CLI run functions. Replace the struct
field with a local buildTopDataArgs wrapper and set the env at the CLI entry
point directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 14:54:45 +02:00
archvillainetteandClaude Sonnet 4.6 bdac6f29f0 feat(topdata): materialize Git-LFS asset bytes inside Crucible before packing
Adds materializeAssetLFS + hasLFSPointerStubs helpers to top_package.go.
Called at the top of packageBuiltTopData so bare CI checkouts never ship
~130-byte LFS pointer stubs. Opt-out via CRUCIBLE_SKIP_LFS env or the new
--skip-lfs flag on build-topdata / build-top-package.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 14:50:47 +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 b5a3a715a4 Sorting changes 2026-05-17 14:43:09 +02:00
archvillainette 9384d905d1 Enable plain TTY logging mode + loose-data processing 2026-05-14 15:11:08 +02:00
archvillainette e616ea5043 Fixed freshness check 2026-05-14 10:19:45 +02:00
archvillainette 60d2de9f2d Configuration Hardening
Key changes:

  - Added internal/project/effective.go with normalized effective config, defaults, provenance, and
    JSON output.
  - Added config subcommands:
      - config validate
      - config effective [--json|--yaml]
      - config inspect [<key>]
      - config explain <key>
      - config sources
  - Added YAML schema fields for configurable outputs, cache roots, script cache, inventory extensions,
    topdata output/wiki paths, and autogen cache root.
  - Routed existing hardcoded paths through effective config wrappers for module archives, HAK
    manifests/archives, script cache, music cache/credits, topdata outputs, and autogen caches.
  - Added validation for unsafe generated output/cache paths.
  - Updated command descriptions to avoid fixed build/, .cache, sow_top, etc.
  - Added regression tests for defaults, provenance, deterministic effective config, YAML-controlled
    derivation, config commands, and invalid paths.
2026-05-07 14:09:20 +02:00
archvillainette 601e89bece Packaging Fix 2026-05-07 07:41:22 +02:00
archvillainette f480815e5d Wiki Deploy Code 2026-04-30 19:51:50 +02:00
archvillainette d893785c0c Fix Autogen Lockfile Overrides 2026-04-25 23:36:12 +02:00
archvillainette 88843a1ec1 Refresh Manifests 2026-04-25 09:06:28 +02:00
archvillainette 831d3b47da Refactor build and topdata path resolution through project config 2026-04-24 19:11:10 +02:00
archvillainette 5e900d00b5 Flatten Cache Folder 2026-04-18 10:34:18 +02:00
archvillainette 6f6bf7080a Move Generation Destinations 2026-04-18 10:24:34 +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 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 ae58c4ae71 Template usage 2026-04-10 15:26:27 +02:00
archvillainette 543945f099 Fix type extensions 2 2026-04-10 08:43:06 +02:00
archvillainette 68aea4ba00 Update BuildAndPackage 2026-04-09 17:23:00 +02:00
archvillainette 4f8bfc133a Native Workflow Support 2026-04-09 11:01:39 +02:00