@miller-tech/uap 1.32.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -373,7 +373,8 @@ the model's say-so.
373
373
  8. **Coordination** (`--coordinate`) — registers the run with the multi-agent coordination layer (`uap agent`): announces work on the project, warns about overlapping agents, heartbeats every turn, completes/deregisters on exit.
374
374
  9. **Deploy batching** (`--deploy`) — on success, queues a commit of the applied files into the deploy batcher; execute with `uap deploy flush`.
375
375
  10. **`--optimize`** — one switch for every convergence aid: 4 candidates/turn + critic + practices + escalation + ideation + HALO + coordination (deploy stays explicit).
376
- 11. **Dynamic optimization (default)** — every instruction is classified for complexity (simple / moderate / complex); non-trivial requests automatically get the aids that improve outcomes (moderate exploration ×3 + critic + practices + HALO + coordination; complex the full `--optimize` stack). Any explicit aid flag, `--no-auto`, or `UAP_DELIVER_AUTO=0` disables auto mode. Deploy queueing is never auto-enabled.
376
+ 11. **Test protection (default)** — pre-existing test/spec files are snapshotted at loop start (case-folded, symlink-alias-aware) and the applier refuses model writes to them, with steering feedback and a prompt warning; test-runner/compiler configs (`vitest.config.*`, `tsconfig*.json`, `jest.config.*`, `pytest.ini`, …) are blocked too, closing gate-rigging by indirection. New test files remain allowed. Opt out with `--no-protect-tests`.
377
+ 12. **Dynamic optimization (default)** — every instruction is classified for complexity (simple / moderate / complex); non-trivial requests automatically get the aids that improve outcomes (moderate → exploration ×3 + critic + practices + HALO + coordination; complex → the full `--optimize` stack). Any explicit aid flag, `--no-auto`, or `UAP_DELIVER_AUTO=0` disables auto mode. Deploy queueing is never auto-enabled.
377
378
 
378
379
  ### Components (12 modules)
379
380
 
@@ -439,12 +440,15 @@ uap deliver "..." --ideate --candidates 4 --deploy
439
440
  | `--deploy` | On success, queue a commit into the deploy batcher (`uap deploy`) |
440
441
  | `--optimize` | Enable every convergence aid (deploy excluded) |
441
442
  | `--no-auto` | Disable dynamic optimization (auto-classified aids are the default) |
443
+ | `--no-protect-tests` | Allow modifying pre-existing test files (protected by default) |
442
444
  | `--endpoint <url>` | Override the model endpoint (OpenAI-compatible `/v1`) |
443
445
  | `--dry-run` / `--json` | Show the plan only / emit machine-readable result |
444
446
 
445
447
  Model output is never executed — only written as files and checked by the
446
448
  gates. The applier refuses writes to executed config (`package.json`,
447
- lockfiles), `.git`/hooks/CI paths, and symlinks that escape the project root.
449
+ lockfiles), `.git`/hooks/CI paths, symlinks that escape the project root,
450
+ and pre-existing test/spec files (gate integrity — the spec defines "done",
451
+ so the model must satisfy it, not rewrite it).
448
452
 
449
453
  ---
450
454