Commit Graph
4 Commits
Author SHA1 Message Date
DumiFlex 6a0c0bf97b refactor: remove pipelines feature; add unified AllItems library view
Pipelines never paid off as a separate module kind, so peel out:

- Engine: drop pipeline_handler, remove "pipeline" from valid module
  types in repositories + schema parity.
- Manager: delete Pipelines/PipelineEditor views, PipelineSteps +
  PipelineStepPicker components and their tests. Router, sidebar,
  topbar, dashboard, TestRunner, ImportExport, resolver and
  bundleSelection repointed off the removed routes/types.
- wp_api: drop pipeline branch from modules.py + import_export.py
  (and its test).

In its place, add a unified library view:

- src/manager/views/AllItems.vue — modules + bundles in one filter
  panel with kind multi-select (OR across the 6 kinds). Reachable
  via the Dashboard "View all" link.
- ModuleListView grew the slots/props AllItems needs; BundleAddChild
  + Dashboard + ImportExport updated alongside.

Misc polish along the way: kind-icons / theme tokens / display-prefs
touch-ups, ContextWidget + DebugViewer + AssemblerHelper small fixes,
MockModuleCard + ModulePickerModal tweaks, _shared widget cleanup.
2026-05-17 20:50:26 +03:00
DumiFlex 6921606570 feat(context): module picker + lock/internal + card indicators (#8)
Phase 5.5.4 (SPA library picker for ContextWidget) plus QA-driven polish.

* New ModulePickerModal with search, kind tabs, single + multi-pick, and
  compact filter UX (favorites/hide-added inline; category + tag chips
  behind popover with active-count badge).
* ModuleEditModal kind-aware body — wildcard option editor with
  enable/disable, weight overrides, mode picker (random/subset/pinned),
  sub-category multi-select.
* Lock + internal per-instance overrides ported and adapted: locked_seed
  derives a per-wildcard rng via sha256(seed:binding); internal hides
  bindings from the public PIPELINE_CONTEXT payload.
* Card indicators: modified dot (option-pool overrides), missing-from-
  library dot (polled hash check), in-card lock + internal toggles.
* RNG-faithful assembler preview via new /wp/api/preview/resolve; header
  shows "PREVIEW · 42". UNRESOLVED chips clickable to strip $var.
* Bulk collapse/expand toggle, focus toast w/ pulsing border overlay
  that tracks node bounds, friendly @name substitution in modal.
* Backend: new /wp/api/modules/import-from-workflow endpoint preserves
  uuid; engine emits per-module effective seeds via WP_Context UI
  payload for authoritative lock-toggle defaults.
2026-04-30 00:53:13 +03:00
DumiFlex af6ff7885e chore(scripts): migrate value-keyed constraint matrices to subcat keys
One-shot Python migration that walks every existing constraint module's
payload.matrix and rewrites rows keyed by source-option VALUE to be
keyed by source SUB_CATEGORY instead. Closes the data-shape gap left
by the d47e50e SPA flip (matrix UI is now subcat × subcat) — without
this script, legacy constraints still have value-keyed rows that
render zero cells in the new editor.

Behavior:
  - Already subcat-keyed rows are kept (idempotent, safe to re-run).
  - Value rows are remapped via source.payload.options[*].sub_category
    lookup; multiple values mapping to the same subcat merge cells (last
    cell wins per target column, with a `merged` warning in the log).
  - Orphan rows (neither subcat nor known option value) are dropped.
  - Missing/broken source_wildcard_id → constraint skipped with a `!`
    warning, no crash.
  - --dry-run flag prints the plan without writing.

Also updates seed_mock_data.py:shirt_x_color_compat to use the new
subcat-keyed shape (formal × warm reduce) plus carries the original
"white linen × red exclude" intent into the exceptions table — so
re-seeding a fresh DB doesn't reintroduce the legacy shape.
2026-04-28 23:42:46 +03:00
DumiFlex 96f5f4260f chore(scripts): add mock-data seeder for integration testing
Idempotent Python seeder under scripts/seed_mock_data.py. Populates the
local SQLite DB with comprehensive fixtures covering every feature.

15 wildcards (incl. 4-deep chain, A↔B cycle pair, self-ref, weighted
bias), 3 fixed_values, 4 combines (chained $var flow + inline picks),
2 derivations (all 4 ops + IF/ELIF/ELSE + 3 action modes), 3 constraints
(value-keyed matrix, sub-category matrix with exceptions, exception-
heavy), 3 pipelines (full 15-step orchestration, smoke, walker-stress).
5 categories with distinct colors/icons. Tags + favorites throughout.

Re-runs are safe: existing modules are updated in place — uuid stays
stable so constraint payloads + pipeline step references keep working.
Run via `python scripts/seed_mock_data.py`; override DB via WP_DB_PATH.
2026-04-28 22:44:23 +03:00