refactor(tooling): T-1290 — the character domain, and six payloads the map misfiled
`reach character {logo, strip-glb, qa, qa-analyze}` replaces make_logo.py,
glb_strip_utility_nodes.py, analyze_captures.py and the run-garment-qa bash
driver. The QA configs and method doc move beside the domain (qa_configs/,
GARMENT_QA.md), and `qa` takes a config name (`reach character qa hoodie_modern`)
or a path.
Parity, from baselines taken before anything moved:
- the logo PNG is byte-identical
- a synthetic GLB with three real utility nodes strips to identical bytes
(the committed bodies strip 0 nodes, so they proved nothing)
- re-analyzing a cached capture set gives a byte-identical report.json and
summary
run-garment-qa is rewritten, not wrapped (D-263). Its decisions — which config,
which Godot ($GODOT, then ~/bin/godot4, then PATH), and whether xvfb-run is
needed — are capture_plan(), pinned by tooling/test_character.py without
launching Godot. The bash exit codes are kept: 2 for a missing config, 3 for
no Godot.
The T-1271 domain map was wrong about this domain. Six of its ten files import
bpy: convert_outfit, inspect_glb, check_hair_symmetry, check_icosphere,
render_quaternius_test and test_quaternius_raw. They are Blender payloads and
joined the carve-out as blender_* (41 payloads now). The 22 existing payloads'
docstrings still cited tooling/garment-fit/ from before T-1273; fixed.
Archived, with reasons in tooling/archive/README.md:
- setup_clothing_metadata.py wrote coverage data for five garments that no
longer exist in the 24-garment wardrobe
- wipe-bodies.sh ran raw DELETEs on systems.db
segment_reference_distribution.md moved to docs/assets/visual/.
Behaviour changes:
- The QA analyzer exited 0 whatever it found, though its own README says
clip-through "is the real defect and it gates". qa and qa-analyze now exit 1
on clip-through, and the remedy names --min-pixels (Wave 1/2 were accepted
at 150). The cached peasant set has 33 failures at the default 8 px.
- glb strip re-reported the same nodes as stripped on every re-run and
rewrote an unchanged file: it left them as orphans and then found them
again. Only nodes still linked into the graph count now, and a first pass
writes the same bytes as before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -470,3 +470,75 @@ Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.', NULL, '2026-09-23 14:25:42', '2026-09-23 14:25:42.440', '2026-09-23 14:25:42.440', NULL, '50093acafd657096ec7f86acfa339f78', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06G65TC359QGCVBEPXHJ4N0MRG', 'description', 'The tail of the tree — three domains, ~26 files, batched because none of them
|
||||
entangles with the spatial ladder or the systems.db stamp.
|
||||
|
||||
`reach wiki` — `tooling/wiki/`, `db/wiki_sync.py`, `db/populate_gttr_hook.py`,
|
||||
`db/backfill_cultural_corridor.py`, `assign-astro-ids.py`,
|
||||
`fill-missing-globes.py`, `migrate-s-to-gj.py`, `patch-core-sector.py`,
|
||||
`process-wiki-system-changes`.
|
||||
READ `Skill(wiki)` FIRST. The wiki has two ownership models running in opposite
|
||||
directions and these tools sit on the seam: `star-systems/` (93% of the wiki) is
|
||||
OUTPUT generated FROM systems.db by `wiki_sync.py`, while the flat categories are
|
||||
INPUT. A verb that writes to the wrong side is silently reverted on the next sync.
|
||||
Several of these are one-shot migrations (`migrate-s-to-gj`, `patch-core-sector`) —
|
||||
decide per file whether it is a live verb or provenance bound for `tooling/archive/`,
|
||||
the same call T-1271 made for `pql-migrate/`.
|
||||
|
||||
`reach assets` — `db/audio_*.py`, `db/audio-*`, `db/image_connector.py`,
|
||||
`db/trellis_connector.py`, `db/common.py`, `trellis-batch.sh`, `synth_ui_sounds.py`.
|
||||
These call tower-of-joy over the network (Stable Audio :11500, Trellis :11510, by
|
||||
IP per `.claude/rules/local-services.md`). Endpoints live in `tooling/db/config.json`
|
||||
— that config must keep working or move deliberately, not incidentally. Network
|
||||
failure is the normal case here, so `ReachError` messages need to distinguish
|
||||
"the box is off" from "the request was wrong"; `missing_fix=` and `fix=` both matter.
|
||||
|
||||
`reach character` — `garment-fit/make_logo.py`, `garment-qa/analyze_captures.py`,
|
||||
`convert_outfit.py`, `glb_strip_utility_nodes.py`, `inspect_glb.py`,
|
||||
`check_hair_symmetry.py`, `check_icosphere.py`, `render_quaternius_test.py`,
|
||||
`setup_clothing_metadata.py`.
|
||||
Much smaller than `garment-fit/`''s 23 files suggest — 22 of them are Blender
|
||||
payloads that belong to the carve-out (T-1273) and MUST NOT import the package.
|
||||
Do T-1273 first or the boundary will blur.
|
||||
|
||||
Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.', 'The tail of the tree — three domains, ~26 files, batched because none of them
|
||||
entangles with the spatial ladder or the systems.db stamp.
|
||||
|
||||
`reach wiki` — `tooling/wiki/`, `db/wiki_sync.py`, `db/populate_gttr_hook.py`,
|
||||
`db/backfill_cultural_corridor.py`, `assign-astro-ids.py`,
|
||||
`fill-missing-globes.py`, `migrate-s-to-gj.py`, `patch-core-sector.py`,
|
||||
`process-wiki-system-changes`.
|
||||
READ `Skill(wiki)` FIRST. The wiki has two ownership models running in opposite
|
||||
directions and these tools sit on the seam: `star-systems/` (93% of the wiki) is
|
||||
OUTPUT generated FROM systems.db by `wiki_sync.py`, while the flat categories are
|
||||
INPUT. A verb that writes to the wrong side is silently reverted on the next sync.
|
||||
Several of these are one-shot migrations (`migrate-s-to-gj`, `patch-core-sector`) —
|
||||
decide per file whether it is a live verb or provenance bound for `tooling/archive/`,
|
||||
the same call T-1271 made for `pql-migrate/`.
|
||||
|
||||
`reach assets` — `db/audio_*.py`, `db/audio-*`, `db/image_connector.py`,
|
||||
`db/trellis_connector.py`, `db/common.py`, `trellis-batch.sh`, `synth_ui_sounds.py`.
|
||||
These call tower-of-joy over the network (Stable Audio :11500, Trellis :11510, by
|
||||
IP per `.claude/rules/local-services.md`). Endpoints live in `tooling/db/config.json`
|
||||
— that config must keep working or move deliberately, not incidentally. Network
|
||||
failure is the normal case here, so `ReachError` messages need to distinguish
|
||||
"the box is off" from "the request was wrong"; `missing_fix=` and `fix=` both matter.
|
||||
|
||||
`reach character` — `garment-fit/make_logo.py`, `garment-qa/analyze_captures.py`,
|
||||
`convert_outfit.py`, `glb_strip_utility_nodes.py`, `inspect_glb.py`,
|
||||
`check_hair_symmetry.py`, `check_icosphere.py`, `render_quaternius_test.py`,
|
||||
`setup_clothing_metadata.py`.
|
||||
Much smaller than `garment-fit/`''s 23 files suggest — 22 of them are Blender
|
||||
payloads that belong to the carve-out (T-1273) and MUST NOT import the package.
|
||||
Do T-1273 first or the boundary will blur.
|
||||
|
||||
Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.
|
||||
|
||||
DONE 2026-09-23. Three commits: wiki (reach wiki stats/gttr-hook; renderer not exposed -> T-1292), assets (reach assets audio/image/trellis/synth-ui; OFF-vs-rejected classification; test_assets.py fake Gradio), character (reach character logo/strip-glb/qa/qa-analyze; test_character.py). Parity evidence per domain in the commit messages: every byte-comparable output (stats, 301 gttr hooks, 4 UI WAVs, harmonic WAVs, pipeline decoded PCM, logo PNG, stripped GLB, QA report.json) identical before/after. Map corrections: 6 of the 10 ''character'' files import bpy -> blender_* payloads (carve-out now 41); setup_clothing_metadata + wipe-bodies.sh archived (dead bootstrap / destructive DB patch). Behaviour changes, all failures-that-read-as-success: audio batch, trellis batch and the garment-QA analyzer exited 0 with failures; trellis generate crashed (TypeError) on a missing image; glb strip re-reported orphaned nodes as stripped on every re-run. Removed functions (noted because the rule is to ask): common.ensure_venv (an os.execv re-exec D-263 forbids) and audio_post.check_ffmpeg (replaced by process.run''s missing-binary remedy). Known quirk left alone: every qa_configs/*.json hardcodes out_dir to the main checkout''s .cache, so a worktree QA run writes into main.', NULL, '2026-09-23 17:55:35', '2026-09-23 17:55:35.868', '2026-09-23 17:55:35.868', NULL, '4c4c046c858168a23f2de7d1cdd53dba', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06G65TC359QGCVBEPXHJ4N0MRG', 'status', 'backlog', 'done', NULL, '2026-09-23 17:55:36', '2026-09-23 17:55:36.277', '2026-09-23 17:55:36.277', NULL, '164508550dfd263ddbc7f21928baec26', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -597,3 +597,77 @@ Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.', 'backlog', 'medium', NULL, 'tooling', 'D-263', '2026-09-02 16:17:45.770', '2026-09-23 14:25:42.440', NULL, 'f5425885aa0e5f99f744ab4cdaaf5d63', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at >= tickets.updated_at;
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06G65TC359QGCVBEPXHJ4N0MRG', 'task', '06G1S3D0M1TQW0GMFBBPQZG3ZM', 'Port wiki, assets and character — the three small remaining domains', 'The tail of the tree — three domains, ~26 files, batched because none of them
|
||||
entangles with the spatial ladder or the systems.db stamp.
|
||||
|
||||
`reach wiki` — `tooling/wiki/`, `db/wiki_sync.py`, `db/populate_gttr_hook.py`,
|
||||
`db/backfill_cultural_corridor.py`, `assign-astro-ids.py`,
|
||||
`fill-missing-globes.py`, `migrate-s-to-gj.py`, `patch-core-sector.py`,
|
||||
`process-wiki-system-changes`.
|
||||
READ `Skill(wiki)` FIRST. The wiki has two ownership models running in opposite
|
||||
directions and these tools sit on the seam: `star-systems/` (93% of the wiki) is
|
||||
OUTPUT generated FROM systems.db by `wiki_sync.py`, while the flat categories are
|
||||
INPUT. A verb that writes to the wrong side is silently reverted on the next sync.
|
||||
Several of these are one-shot migrations (`migrate-s-to-gj`, `patch-core-sector`) —
|
||||
decide per file whether it is a live verb or provenance bound for `tooling/archive/`,
|
||||
the same call T-1271 made for `pql-migrate/`.
|
||||
|
||||
`reach assets` — `db/audio_*.py`, `db/audio-*`, `db/image_connector.py`,
|
||||
`db/trellis_connector.py`, `db/common.py`, `trellis-batch.sh`, `synth_ui_sounds.py`.
|
||||
These call tower-of-joy over the network (Stable Audio :11500, Trellis :11510, by
|
||||
IP per `.claude/rules/local-services.md`). Endpoints live in `tooling/db/config.json`
|
||||
— that config must keep working or move deliberately, not incidentally. Network
|
||||
failure is the normal case here, so `ReachError` messages need to distinguish
|
||||
"the box is off" from "the request was wrong"; `missing_fix=` and `fix=` both matter.
|
||||
|
||||
`reach character` — `garment-fit/make_logo.py`, `garment-qa/analyze_captures.py`,
|
||||
`convert_outfit.py`, `glb_strip_utility_nodes.py`, `inspect_glb.py`,
|
||||
`check_hair_symmetry.py`, `check_icosphere.py`, `render_quaternius_test.py`,
|
||||
`setup_clothing_metadata.py`.
|
||||
Much smaller than `garment-fit/`''s 23 files suggest — 22 of them are Blender
|
||||
payloads that belong to the carve-out (T-1273) and MUST NOT import the package.
|
||||
Do T-1273 first or the boundary will blur.
|
||||
|
||||
Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.
|
||||
|
||||
DONE 2026-09-23. Three commits: wiki (reach wiki stats/gttr-hook; renderer not exposed -> T-1292), assets (reach assets audio/image/trellis/synth-ui; OFF-vs-rejected classification; test_assets.py fake Gradio), character (reach character logo/strip-glb/qa/qa-analyze; test_character.py). Parity evidence per domain in the commit messages: every byte-comparable output (stats, 301 gttr hooks, 4 UI WAVs, harmonic WAVs, pipeline decoded PCM, logo PNG, stripped GLB, QA report.json) identical before/after. Map corrections: 6 of the 10 ''character'' files import bpy -> blender_* payloads (carve-out now 41); setup_clothing_metadata + wipe-bodies.sh archived (dead bootstrap / destructive DB patch). Behaviour changes, all failures-that-read-as-success: audio batch, trellis batch and the garment-QA analyzer exited 0 with failures; trellis generate crashed (TypeError) on a missing image; glb strip re-reported orphaned nodes as stripped on every re-run. Removed functions (noted because the rule is to ask): common.ensure_venv (an os.execv re-exec D-263 forbids) and audio_post.check_ffmpeg (replaced by process.run''s missing-binary remedy). Known quirk left alone: every qa_configs/*.json hardcodes out_dir to the main checkout''s .cache, so a worktree QA run writes into main.', 'backlog', 'medium', NULL, 'tooling', 'D-263', '2026-09-02 16:17:45.770', '2026-09-23 17:55:35.868', NULL, '3bcab3403c9e6605f27b10a4a22701db', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at >= tickets.updated_at;
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06G65TC359QGCVBEPXHJ4N0MRG', 'task', '06G1S3D0M1TQW0GMFBBPQZG3ZM', 'Port wiki, assets and character — the three small remaining domains', 'The tail of the tree — three domains, ~26 files, batched because none of them
|
||||
entangles with the spatial ladder or the systems.db stamp.
|
||||
|
||||
`reach wiki` — `tooling/wiki/`, `db/wiki_sync.py`, `db/populate_gttr_hook.py`,
|
||||
`db/backfill_cultural_corridor.py`, `assign-astro-ids.py`,
|
||||
`fill-missing-globes.py`, `migrate-s-to-gj.py`, `patch-core-sector.py`,
|
||||
`process-wiki-system-changes`.
|
||||
READ `Skill(wiki)` FIRST. The wiki has two ownership models running in opposite
|
||||
directions and these tools sit on the seam: `star-systems/` (93% of the wiki) is
|
||||
OUTPUT generated FROM systems.db by `wiki_sync.py`, while the flat categories are
|
||||
INPUT. A verb that writes to the wrong side is silently reverted on the next sync.
|
||||
Several of these are one-shot migrations (`migrate-s-to-gj`, `patch-core-sector`) —
|
||||
decide per file whether it is a live verb or provenance bound for `tooling/archive/`,
|
||||
the same call T-1271 made for `pql-migrate/`.
|
||||
|
||||
`reach assets` — `db/audio_*.py`, `db/audio-*`, `db/image_connector.py`,
|
||||
`db/trellis_connector.py`, `db/common.py`, `trellis-batch.sh`, `synth_ui_sounds.py`.
|
||||
These call tower-of-joy over the network (Stable Audio :11500, Trellis :11510, by
|
||||
IP per `.claude/rules/local-services.md`). Endpoints live in `tooling/db/config.json`
|
||||
— that config must keep working or move deliberately, not incidentally. Network
|
||||
failure is the normal case here, so `ReachError` messages need to distinguish
|
||||
"the box is off" from "the request was wrong"; `missing_fix=` and `fix=` both matter.
|
||||
|
||||
`reach character` — `garment-fit/make_logo.py`, `garment-qa/analyze_captures.py`,
|
||||
`convert_outfit.py`, `glb_strip_utility_nodes.py`, `inspect_glb.py`,
|
||||
`check_hair_symmetry.py`, `check_icosphere.py`, `render_quaternius_test.py`,
|
||||
`setup_clothing_metadata.py`.
|
||||
Much smaller than `garment-fit/`''s 23 files suggest — 22 of them are Blender
|
||||
payloads that belong to the carve-out (T-1273) and MUST NOT import the package.
|
||||
Do T-1273 first or the boundary will blur.
|
||||
|
||||
Standard port acceptance as on T-1281/T-1286. Check `__file__`-relative roots
|
||||
before moving anything — five silent failures so far.
|
||||
|
||||
PROGRESS 2026-09-23 — wiki half done (commit to follow): reach wiki stats + gttr-hook, both output-identical to the originals (stats byte-identical; all 301 gttr hooks identical). wiki_sync.generate_wiki/import_from_wiki moved but NOT exposed: a pre-port run of the old --generate deleted ~10,700 lines of committed pages -> T-1292. Archive: tooling/archive/{pql-migrate,wiki-bootstrap}/ with a README (one-shots + the destructive process-wiki-system-changes + backfill_cultural_corridor, a raw DB patch script outside D-262). find-stubs archived too: it finds 0 stubs, Phase-1 job done. Side fix: tooling/godot-cold-parse + godot-parse-sweep were never retired after T-1283 and pr-process still told agents to run them — removed, skill repointed. Remaining: assets, character.
|
||||
|
||||
DONE 2026-09-23. Three commits: wiki (reach wiki stats/gttr-hook; renderer not exposed -> T-1292), assets (reach assets audio/image/trellis/synth-ui; OFF-vs-rejected classification; test_assets.py fake Gradio), character (reach character logo/strip-glb/qa/qa-analyze; test_character.py). Parity evidence per domain in the commit messages: every byte-comparable output (stats, 301 gttr hooks, 4 UI WAVs, harmonic WAVs, pipeline decoded PCM, logo PNG, stripped GLB, QA report.json) identical before/after. Map corrections: 6 of the 10 ''character'' files import bpy -> blender_* payloads (carve-out now 41); setup_clothing_metadata + wipe-bodies.sh archived (dead bootstrap / destructive DB patch). Behaviour changes, all failures-that-read-as-success: audio batch, trellis batch and the garment-QA analyzer exited 0 with failures; trellis generate crashed (TypeError) on a missing image; glb strip re-reported orphaned nodes as stripped on every re-run. Removed functions (noted because the rule is to ask): common.ensure_venv (an os.execv re-exec D-263 forbids) and audio_post.check_ffmpeg (replaced by process.run''s missing-binary remedy). Known quirk left alone: every qa_configs/*.json hardcodes out_dir to the main checkout''s .cache, so a worktree QA run writes into main.', 'done', 'medium', NULL, 'tooling', 'D-263', '2026-09-02 16:17:45.770', '2026-09-23 17:55:36.277', NULL, '231af57682599f487ebd3fb0d396870c', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at >= tickets.updated_at;
|
||||
|
||||
Reference in New Issue
Block a user