Skip to content

v1.19.2

@AlexMikhalev AlexMikhalev tagged this 19 May 17:49
* fix(security): char-safe truncation in sanitize_system_prompt Fixes #1721

Replace byte-slice truncation prompt[..MAX_PROMPT_LENGTH] with
prompt.chars().take(MAX_PROMPT_LENGTH).collect() to prevent panic
when MAX_PROMPT_LENGTH falls inside a multi-byte UTF-8 character.

Adds test_sanitize_multibyte_boundary to verify correct behaviour.

* trigger: rebuild after repo cleanup

* fix(clippy): remaining field-reassign-with-default and unnecessary cast Refs #1721

* trigger: rebuild with clean repo

* trigger: rebuild webhook test

* trigger: full-clone pipeline test Refs #1721

* trigger: pipeline test with full clone Refs #1721

* trigger: depth=1 fetch pipeline test Refs #1721

* ci: e2e pipeline test from local Refs #1721

* ci: selective refspec pipeline test Refs #1721

* ci: final pipeline test with webhook ready Refs #1721

* style: cargo fmt for role_llm_api_key test Refs #1721

* fix: remove accidentally committed project.rs Refs #1721

* ci: fresh clone pipeline test Refs #1721

* fix(build-runner): tee output to file and fix BUILD.md parsing

- Redirect all command output through tee to build-output.log
- ADF agent runner truncates stderr at ~8KB, hiding clippy/build/test results
- Fix parse_build_md: was concatenating lines without newlines
- BUILD_LOG set to $ADF_WORKING_DIR/build-output.log per run

Refs #1721

* feat(config): implement project-level config discovery for .terraphim/

- Add project.rs with discover() function that walks up from cwd to find .terraphim/
- Change global_shortcut from String to Option<String> in Config
- Add merge_with() and with_project() methods to ConfigBuilder
- Update TuiService::new to accept no_project_config parameter
- Add merge_project_config() helper that discovers and merges project config
- Update all call sites and tests to use new signatures

Refs #1674

* feat(config): implement project-level config discovery for .terraphim/

- Add project.rs with discover() function that walks up from cwd to find .terraphim/
- Change global_shortcut from String to Option<String> in Config
- Add merge_with() and with_project() methods to ConfigBuilder
- Update TuiService::new to accept no_project_config parameter
- Add merge_project_config() helper that discovers and merges project config
- Update all call sites and tests to use new signatures

Refs #1674

* fix(config): remove needless borrows in project.rs clippy warnings

- cargo clippy -D warnings caught &real.join() where real.join() works
- Affects create_dir_all and canonicalize calls in test

Refs #1721

* docs: update project-level config discovery documentation

- Add project-level config discovery section to terraphim_config summary
- Update main summary.md with new ProjectConfig type and discovery feature
- Add release announcement to .docs/releases/v2026.05.19.md

Refs: project config discovery feature (commits 59cd233b7, 26f5b8728)

* fix(security): char-safe truncation in sanitize_system_prompt and build-runner fixes

- Replace byte-indexed prompt truncation with .chars().take() to prevent
  UTF-8 byte-boundary panic in sanitize_system_prompt (Fixes #1721)
- Add test_sanitize_multibyte_boundary test for char-safe truncation
- Implement project-level config discovery for .terraphim/ directories
- Fix build-runner-llm.sh: pipefail for correct exit codes,
  tee output to build-output.log (ADF truncates stderr),
  fix parse_build_md command extraction
- Fix clippy warnings: needless_borrows_for_generic_args in project.rs,
  unnecessary_cast in llm_bridge.rs, field-reassign-with-default in config
- Revert incorrect TuiService::new(None, false) to TuiService::new(None)
- Fix global_shortcut Option<String> consistency across test files
- Mark LLM bridge integration tests as #[ignore] (require live client)

Refs #1721

* docs: add release announcement for v2026.05.19

Refs: release v2026.05.19

* chore: bump version to 1.19.1 for release

* chore: bump version to 1.19.2

---------

Co-authored-by: forge-admin <admin@terraphim-forge.local>
Co-authored-by: Alex <alex@example.com>
Assets 2
Loading