Commit Graph
100 Commits
Author SHA1 Message Date
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 4199d615a3 Unit test 2026-05-14 19:59:15 +02:00
archvillainette e39d539585 Fix stale tag considerations 2026-05-14 19:49:42 +02:00
archvillainette 961a518d66 Wrapper fixes 2026-05-14 19:04:07 +02:00
archvillainette 0e1001657a Fix id flip 2026-05-14 18:50:10 +02:00
archvillainette 9384d905d1 Enable plain TTY logging mode + loose-data processing 2026-05-14 15:11:08 +02:00
archvillainette 2cef662e8e Validation hardening 2026-05-14 15:01:04 +02:00
archvillainette 651336d48e Key lock honoring? 2026-05-14 14:16:02 +02:00
archvillainette baa81f6cb7 Praying for deliberately deleted entries to STOP BEING PARSED AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2026-05-14 13:45:16 +02:00
archvillainette c9e2b9fdc4 Fix deliberate deletion reuse 2026-05-14 12:54:09 +02:00
archvillainette 393e9a4e59 Lockfile priority normalization 2026-05-14 12:21:47 +02:00
archvillainette 4449fa4f0e Fix override precedence 2026-05-14 11:43:52 +02:00
archvillainette 8fcf0863cc Fix: replaced keys become stale 2026-05-14 11:25:13 +02:00
archvillainette e616ea5043 Fixed freshness check 2026-05-14 10:19:45 +02:00
archvillainette d61ab33aa4 Class skill injection now points to authored entries 2026-05-14 09:29:55 +02:00
archvillainette 18066ee0dd Lock normalization 2026-05-14 08:34:50 +02:00
archvillainette c66b7dcb2b Fix Toolkit Overriding Semantics
- key: null and key: "****" now mean “remove this row's identity”
  - only "null": true blanks the whole row
  - explicit id remains authoritative on id + key overrides
  - when a row claims a key from another row, the key and lock entry can move with it if the old row
    loses that key
2026-05-14 00:15:58 +02:00
archvillainette 985bffa8fb Null key overrides add null rows 2 2026-05-13 22:22:20 +02:00
archvillainette f3885cf93f Null key overrides generate null rows 2026-05-13 22:21:56 +02:00
archvillainette 14313b7ac9 Updated documentation for wrappers 2026-05-13 20:20:15 +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 03e2320788 Conversion to full YAML 2026-05-13 19:22:07 +02:00
archvillainette 7d286551b3 Wrapper tool hardening and cleanup 2026-05-13 19:06:24 +02:00
archvillainette 53cb1e6996 Portrait reservation fix? 2026-05-12 17:36:19 +02:00
archvillainette 838d632a28 Changelog fixes 2026-05-10 18:34:16 +02:00
archvillainette 7919ded8b4 Model compilation contract 2026-05-10 09:11:06 +02:00
archvillainette dee53e8eb4 Model compilation contract 2026-05-08 22:29:46 +02:00
archvillainette c7fd63a80c Music Pipeline Configuration Hardening 2026-05-08 11:22:57 +02:00
archvillainette 75942b0940 Normalize Log Linebreaks 2026-05-08 09:14:27 +02:00
archvillainette 4732947db8 Compile pipeline fix 2026-05-08 09:05:06 +02:00
archvillainette 91c90793a2 Extraction Hardening 2026-05-08 01:26:41 +02:00
archvillainette fa4c9116ae Hardening audit
Key hardening changes:

  - Config validation now rejects paths.source: . and paths.assets: ., so source/asset roots cannot
    resolve to the repository root.
  - apply-hak-manifest now refuses to run when paths.source is unset or unsafe, instead of potentially
    writing under a root-level module/.
  - Inline flags across utility parsers now reject empty values consistently, e.g. --dataset=, --hak=,
    --endpoint=, --output=.
  - build-changelog now supports --flag=value inline syntax like the other utilities.
2026-05-08 00:31:17 +02:00
archvillainette 9f16aa8872 Fix paths asset regression 2026-05-08 00:23:41 +02:00
archvillainette 4dc16793cd Restore Spinner 2026-05-07 23:08:26 +02:00
archvillainette d1b20684f5 Configuration hardening 2026-05-07 21:33:53 +02:00
archvillainette bba0d2fb45 Music Pipeline Refactor 2026-05-07 18:17:40 +02:00
archvillainette 6ab5f05c41 Log Refactor Phase 2 2026-05-07 15:36:40 +02:00
archvillainette 26db69c9eb Script Wrapper Contract 2026-05-07 15:12:00 +02:00
archvillainette b39bdf13e8 Configuration Hardening 2
What changed:

  - Added visible runtime override reporting with masking for sensitive values.
  - Expanded effective config for build cleanup, script compiler discovery/env, extract layout/cleanup/
    HAK discovery, wiki deploy defaults, autogen cache policy, and release-source env names.
  - Wired configured values into build, script compiler resolution, extract, autogen cache refresh/max
    age, parts manifest release source, wiki generation/deploy, and TLK output naming.
  - Added config sources override output and validation-rule hints in config explain.
  - Added CONFIGURATION_HARDENING_AUDIT.md.
  - Updated README.md with config commands, schema defaults, and JSON artifact boundaries.
  - Added regression tests for override visibility/masking, compiler/extract/wiki/autogen config,
    configured HAK discovery, and config sources output.
2026-05-07 14:22:47 +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 000d31ad24 YAML Configuration Refactor 2026-05-07 13:44:46 +02:00
archvillainette 7abcbf1a38 Log Refactor 2026-05-07 13:33:25 +02:00
archvillainette 13a615dbd7 Credits Caching Pipeline Test 2026-05-07 12:13:03 +02:00
archvillainette b717b9cce2 Panic Fix 2026-05-07 09:09:41 +02:00
archvillainette fa3dde4293 .cache used for credits 2026-05-07 09:04:20 +02:00
archvillainette f6bb4fe3d7 Music Pipeline Implementation 2026-05-07 08:51:42 +02:00
archvillainette 601e89bece Packaging Fix 2026-05-07 07:41:22 +02:00
archvillainette 90ba281f1b Changelog Automation 2026-05-06 13:51:00 +02:00
archvillainette a7b4c4a908 Change severity of missing assets to Warn 2026-05-06 09:44:14 +02:00
archvillainette a1bb5b74f8 Normalized Routing 2026-05-04 18:45:51 +02:00
archvillainette b3b81bd7d6 Fix Throbber Linebreak 2026-05-04 18:34:50 +02:00
archvillainette 66a3655133 Circ Cloudflare 2026-05-04 18:17:12 +02:00
archvillainette c86aa9e2de Honor 'SOW_ASSETS_SERVER_URL and 'SOW_ASSETS_REPO' 2026-05-04 18:06:58 +02:00
archvillainette 18eab086cc Move Wiki Pages to MD 2026-04-30 20:43:53 +02:00
archvillainette 78133efdf4 Fix Wiki Deploy Post Titles 2026-04-30 20:17:02 +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 4009931fd0 Dev Testing + AutoGen Activation 2026-04-25 08:57:10 +02:00
archvillainette b6fff4bed4 Head Accessories AutoGen Configuration 2026-04-25 07:40:17 +02:00
archvillainette 831d3b47da Refactor build and topdata path resolution through project config 2026-04-24 19:11:10 +02:00
archvillainette d880661599 The Throbber 2026-04-21 19:31:19 +02:00
archvillainette 85e98acc45 Clean Source Paths Only 2026-04-21 19:24:44 +02:00
archvillainette 899534e9cd Fix Destructive Extract v2 2026-04-21 19:21:44 +02:00
archvillainette c4c32fb463 Fix Destructive Extracts 2026-04-21 19:16:01 +02:00
archvillainette 2c2dce7e41 Add Extract Ignore Lists 2026-04-21 19:10:29 +02:00
archvillainette b690135057 Allow Optional Args With Extract 2026-04-21 19:04:58 +02:00
archvillainette 8bfcebc6dc Fix No Forced Paths Issue 2026-04-21 15:59:39 +02:00
archvillainette 64f357734c No Forced Paths 2026-04-21 15:41:01 +02:00
archvillainette f249108cf0 Changed sow-tools HAK split planning to preserve previous split membership 2026-04-18 18:39:15 +02:00
archvillainette e0b3164427 Keep wiki deploy dry runs read-only 2026-04-18 18:30:15 +02:00
archvillainette 8e7ffd8f4f Resolve LFS objects from git common dir 2026-04-18 16:03:49 +02:00
archvillainette dfde20f679 Add deploy-wiki command for native DokuWiki deployment
- Add DeployWikiWithOptions function in new wiki_deploy.go
- Add deploy-wiki command to sow-toolkit CLI
- Supports DOKUWIKI_RPC_* and GITHUB_REF_NAME env vars
- Includes --dry-run, --source-dir, --manifest options
2026-04-18 12:23:24 +02:00
archvillainette c52311ce5f Add build-wiki command for isolated wiki generation
- Add BuildWikiWithOptions in native.go for building wiki from pre-existing topdata
- Add runBuildWiki and parseBuildWikiArgs in app.go for CLI integration
- Add --force flag to force rebuild even when output is current
2026-04-18 11:13:25 +02:00
archvillainette b6ed92e3e8 Clear Old Assets Path 2026-04-18 11:02:38 +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 897776f432 Respect Accessibility Fields For Feats 2026-04-18 09:28:08 +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 f32dd224fe Build Path Cleanup 2026-04-17 21:09:02 +02:00
archvillainette d77b44c210 Fix lockfile generation, Key authoring hardening, and generic table injection 2026-04-17 20:43:07 +02:00
archvillainette 376de5d67a In-line Portrait Generation 2026-04-16 12:04:28 +02:00
archvillainette ef431bc8ae Cache Git Log 2026-04-15 15:11:31 +02:00
archvillainette 787ba0728c Build with CreatedAt time instead of ChangedAt 2026-04-15 15:03:55 +02:00
archvillainette ab18baf067 build-haks now accepts --source-manifest <path>
When that flag is used, sow-tools:
- collects only the assets referenced by that manifest subset
- skips full-project chunk planning for the per-archive run
- reconstructs just the requested archive chunks from the manifest
2026-04-14 12:12:42 +02:00
archvillainette 9577bc853b Patch Content Requirements Blocker
Root cause:

build-haks --archive ... was still collecting content requirements for
the entire asset inventory before chunk filtering.
So even when building sow_over_01, it demanded downloaded LFS objects
from unrelated groups like appr.
2026-04-14 11:48:31 +02:00
archvillainette 9dbb533241 Parse LFS Pointers Quickly
sow-tools no longer relies on git lfs ls-files --json for planning. It
now parses the checked-out LFS pointer files directly, so split sizing
and content_hash use the real LFS oid and size.
2026-04-14 11:40:38 +02:00
archvillainette bf7c844f2e Build in /tmp and immediately discard 2026-04-14 09:49:36 +02:00
archvillainette b766ff1348 Pipeline Planning 2026-04-14 01:08:38 +02:00
archvillainette 5bd4a58bff Filter By Hak Name 2026-04-14 00:47:11 +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 a4fa2156ca Fix Topdata Build 2026-04-13 14:51:40 +02:00
archvillainette b4c28b667b Fix Conversion Flag Entry 2026-04-13 14:39:02 +02:00
archvillainette 2b560ee5ea Default 2da-to-json to suffix 2026-04-13 14:12:24 +02:00
archvillainette 471fbbb55e Allow optional hak releases 2026-04-13 12:41:14 +02:00