diff --git a/.gitignore b/.gitignore index ef52805c..d244fbc8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ README_files/ README.html .DS_Store test-results/ +shiny_bookmarks/ python-package/examples/titanic.db .quarto *.db diff --git a/pkg-py/CHANGELOG.md b/pkg-py/CHANGELOG.md index 46b024a7..7c730473 100644 --- a/pkg-py/CHANGELOG.md +++ b/pkg-py/CHANGELOG.md @@ -45,6 +45,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * The system prompt is now lighter: full schema is no longer embedded upfront. Instead the LLM fetches per-table schema on demand via the new `querychat_get_schema` tool — and only when it needs to. When a `DataDict` is provided, the tool skips columns that already have descriptions, so the LLM only pays for what isn't already documented. (#195) * The query tool result card now starts collapsed by default. Users can still expand it to see the SQL query and results. Set `QUERYCHAT_TOOL_DETAILS=expanded` to restore the previous behavior. (#239) +* Fixed `data_description` and `extra_instructions` being HTML-escaped in the system prompt. Special characters like `<`, `>`, and `&` in developer-provided descriptions and instructions are now passed to the LLM verbatim. (#258) ## [0.6.1] - 2026-05-26 diff --git a/pkg-py/src/querychat/prompts/prompt.md b/pkg-py/src/querychat/prompts/prompt.md index 08b0c93f..e9c42af8 100644 --- a/pkg-py/src/querychat/prompts/prompt.md +++ b/pkg-py/src/querychat/prompts/prompt.md @@ -14,7 +14,7 @@ You have access to a {{db_type}} SQL database with the following tables: {{/has_data_dicts}} {{#data_description}} -{{data_description}} +{{{data_description}}} {{/data_description}} @@ -303,5 +303,5 @@ You might want to explore the advanced features {{#extra_instructions}} ## Additional Instructions -{{extra_instructions}} +{{{extra_instructions}}} {{/extra_instructions}} diff --git a/pkg-r/NEWS.md b/pkg-r/NEWS.md index 754ded8c..7775a851 100644 --- a/pkg-r/NEWS.md +++ b/pkg-r/NEWS.md @@ -37,6 +37,8 @@ * The system prompt is now lighter: full schema is no longer embedded upfront. Instead the LLM fetches per-table schema on demand via the new `querychat_get_schema` tool — and only when it needs to. When a `data_dict` is provided, the tool skips columns that already have descriptions, so the LLM only pays for what isn't already documented. (#195) +* Fixed `data_description` and `extra_instructions` being HTML-escaped in the system prompt. Special characters like `<`, `>`, and `&` in developer-provided descriptions and instructions are now passed to the LLM verbatim. (#258) + # querychat 0.3.0 ## New features diff --git a/pkg-r/inst/prompts/prompt.md b/pkg-r/inst/prompts/prompt.md index adbbe3c4..87b6d686 100644 --- a/pkg-r/inst/prompts/prompt.md +++ b/pkg-r/inst/prompts/prompt.md @@ -14,7 +14,7 @@ You have access to a {{db_type}} SQL database with the following tables: {{/has_data_dicts}} {{#data_description}} -{{data_description}} +{{{data_description}}} {{/data_description}} @@ -303,5 +303,5 @@ You might want to explore the advanced features {{#extra_instructions}} ## Additional Instructions -{{extra_instructions}} +{{{extra_instructions}}} {{/extra_instructions}}