5 Commits

Author SHA1 Message Date
Jesús Pérez
a963adbf5b
feat(forms): migrate all form definitions and configs to Nickel (.ncl)
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
Replace all TOML form definitions in examples/ and config/ with
  type-checked Nickel equivalents. Update cli_loader to prefer .ncl
  (via nickel export) over .toml in config search order.
  TOML support retained as fallback — no breaking change.

  - El loader usa nickel export --format json + serde_json como puente — evita reimplementar un parser Nickel en Rust y aprovecha el binario ya existente.
  - El orden de búsqueda .ncl > .toml permite migración incremental: cualquier config vieja sigue funcionando sin tocarla.
  - Los contratos Nickel (| default, | String) en los configs sustituyen la validación que antes era implícita en el parsing TOML — el error llega antes (en nickel export) con mensajes más descriptivos.
2026-03-08 23:20:50 +00:00
Jesús Pérez
baff1c42ec
refactor(core): eliminate field execution duplication, fix stack-unsafe retry, O(1) context passing
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
Deduplication
  - Consolidate three copies of match field.field_type into InquireBackend::execute_field_sync
    as single canonical implementation (backends/cli.rs)
  - Add previous_results param to execute_field_sync (pub(crate)); propagate options_from
    filtering previously absent from the cli.rs copy
  - Move filter_options_from to backends/cli.rs pub(crate); remove duplicate copies from
    executor.rs and nickel/roundtrip.rs (-346 lines, 0 behavior regressions)
  - Gate legacy sync path (execute_with_base_dir, execute, load_and_execute_from_file)
    on #[cfg(feature = "cli")]

  Retry fix
  - Replace unbounded recursive retry in execute_field_sync with loop+continue (O(1) stack)

  RenderContext clone cost
  - Change RenderContext.results from HashMap<String, Value> to Arc<HashMap<String, Value>>
  - Change executor accumulators to Arc in execute_with_backend_complete,
    execute_with_backend_tw    execute_with_backend_tw    execute_with_backend_tw    execute_with_backend_tw    execute_with_bante    execute_won:    execute_with_backend_tw    execute_with_backend_tw    execute_with_backend_tw    execute_count==1 (guaranteed at each insert site)
  - typedialog-ai/backend.rs: &context.results -> context.results.iter() for Arc deref

  Doctests
  - Fix five broken doctests: FormDefinition fields renamed, confirm() arity, FormBackend
    methods replaced, cli_loader ignore -> no_run with concr    methods replaced, cli_loader ignore -> no_run with concr    methods reken    methods replaced, cli_loader ignore -> no_run with concr    methods replaced, clsync path
  - docs/architecture.md Known Technical Debt: all items resolved, section closed
  EOF
2026-02-17 15:49:28 +00:00
Jesús Pérez
52f73a1b3f
refactor(core): eliminate field execution duplication and fix stack-unsafe retry
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
- Consolidate three copies of match field.field_type into InquireBackend::execute_field_sync
    as single canonical implementation (backends/cli.rs)
  - Add previous_results param to execute_field_sync (pub(crate)); propagate options_from
    filtering previously absent from the cli.rs copy
  - Move filter_options_from to backends/cli.rs pub(crate); remove duplicate copies from
    executor.rs and nickel/roundtrip.rs (-346 lines, 0 behavior regressions)
  - Gate legacy sync path (execute_with_base_dir, execute, load_and_execute_from_file)
    on #[cfg(feature = "cli")]
  - Replace unbounded recursive retry in execute_field_sync with loop+continue (O(1) stack)
  - Fix five broken doctests: FormDefinition fields renamed, confirm() arity, FormBackend
    methods replaced, cli_loader ignore -> no_run with concrete struct
  - Add docs/architecture.md: positioning, BackendFactory mechanics, three-phase execution,
    CLI field execution contract, legacy sync path, known technical debt
  EOF
2026-02-17 15:13:26 +00:00
Jesús Pérez
8e1c1968a3
chore: fix doc
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
2026-02-17 14:39:40 +00:00
Jesús Pérez
78e995177b
chore: udpate docs with arch
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
2026-02-17 14:33:20 +00:00