Releases: renan-siqueira/rsazure-openai-toolkit
v0.7.3 — Finalized BuiltInAgent Fallback Behavior (Non-Invasive)
What's Changed
✅ Changed
- The fallback
BuiltInAgentnow runs entirely in-memory - It no longer creates any prompt folders or files on disk
🔒 Design Note
This ensures the toolkit behaves non-invasively by default:
- First-run usage (
rschat "question") is fully supported without any setup - No side effects or file creation occurs unless the user explicitly initiates agent generation
📌 Summary
- Safe for testing, CI pipelines, or ephemeral CLI calls
- Consistent with the project's principle of "facilitate without intrusion"
🔎 See CHANGELOG for full details.
v0.7.2 — Built-in Agent Fallback for Quick Start
What's Changed
🧠 Added
BuiltInAgent: a fully in-memory fallback agent to allow first-time usage without prompts on disk- Used by
ConverSessionautomatically if no prompt path or agent folder is available
🔧 Changed
ConverSessionnow gracefully falls back to built-in prompt and config- CLI (
rschat) now works out-of-the-box without requiring prompt files or.rsmeta
📌 Notes
- No breaking changes
- Ideal for quick onboarding and usage without setup
- Prompt path remains customizable via
.envor argument
🔎 See CHANGELOG for full details.
v0.7.1 — Fix import bug in ConverSession (ModelConfig path)
What's Changed
🐛 Fixed
- Resolved a
ModuleNotFoundErrorinconversession.py - The
ModelConfigclass is now correctly imported fromprompts/model.py
This patch does not introduce any breaking changes or behavioral modifications.
Safe to upgrade for all users running v0.7.0.
v0.7.0 — Conversational Core, Agent System, and Prompt Architecture
Highlights
🧠 Introduced ConverSession: the new orchestration core for agent-based conversations
- ✅ New prompt architecture with
.rsmetasupport and variable injection - ✅
Agentnow centralizes config and prompt behavior - 🔄 Refactored the CLI to be just a clean interface on top of the core
- 🔐 Improved auditability and logging consistency
What's Changed
✅ Added
- ConverSession: new high-level orchestrator for prompts, models, logging, and context
- PromptManager with support for versioned
.rsmetafiles - Agent class that loads and validates from config.yaml + prompt files
🔧 Changed
- Merged prompt model and model config into
prompts/model.py - Moved all env-related logic to
env/config.py - Simplified CLI logic (CLI is now purely a front-facing tool)
- Updated all internal references to new structure
🧹 Removed
model_config.py(logic moved toprompts.model)ChatCLIclass from CLI
📌 Notes
- No breaking changes
- Safe to upgrade
- PyPI and GitHub now aligned under new versioning
🔎 See the Changelog for full details.
v0.6.4 — CLI Bugfix: Early .env Loading for Environment Variables
Highlights
🐛 Fixed an issue where environment variables were not loaded correctly from .env when running the rschat CLI
- ✅
load_env()is now executed immediately when the CLI module is loaded - 🔐 Ensures environment-based config works even if the user hasn’t exported variables manually
What's Changed
✅ Fixed
- Bug where CLI would fail with “missing environment variables” even with a valid
.envfile present
🔧 Changed
- Moved
load_env()to the top ofcli.pyso it's executed during import - Ensures
get_cli_config()has access to environment values at instantiation time - Updated version metadata to
0.6.4
📌 Notes
- No new dependencies
- No breaking changes
- CLI now works out-of-the-box as expected with
.env
🔎 See the Changelog for full details.
v0.6.3 — Internal Refactor: Dedicated Integration Layer + Isolated Testing
Highlights
- 🔁 Refactored
core.pyinto a new dedicated module:core/integration.py - ✅ Added isolated unit tests using Python's built-in
unittestmodule (no external test dependencies) - 🔒 Internal core logic is now fully encapsulated and no longer exposed to end users
What's Changed
✅ Added
core/integration.pyas the new explicit Azure OpenAI integration layer- Unit test suite under
tests/core/test_integration.py, covering client creation and message generation - Retry logic, complete OpenAI parameter support, and type-safe internal interface
🔧 Changed
- Removed public access to low-level core methods (
main,generate_response) __init__.pyincore/is now intentionally empty to reinforce private scope
📌 Notes
- No breaking changes
- No new dependencies were added
- Safe to upgrade — all CLI and templates remain compatible
🔎 See the Changelog for full details.
v0.6.2 — Template cleanup and CLI alignment
✨ What's new in v0.6.2
This version focuses on aligning all code generation templates (samples/) with the modern architecture introduced in v0.6.0. It improves consistency, reusability, and maintainability across CLI-style and scripting-style examples.
✅ Updated templates
All four sample templates have been fully updated to:
- Use the unified import style:
import rsazure_openai_toolkit as rschat - Replace
call_azure_openai_handlerwithrschat.main(...) - Use
get_cli_config(),get_model_config(), andget_context_messages()consistently - Support context handling and result formatting via
ChatResult - Leverage
get_logger()and structured local logging (JSONL / CSV) - Add defensive checks (
response.choices) and token estimation fallback - Use
main()blocks for clean reusability and testing
🔧 Affected templates
basic_usage.py.j2chat_loop_usage.py.j2env_usage.py.j2env_chat_loop_usage.py.j2
All templates are now fully aligned with the CLI behavior (rschat) and are production-grade, following the same safety and logging guarantees.
📌 Notes
This is a non-breaking update that improves the quality and clarity of developer-facing samples.
Feel free to regenerate your samples using:
rschat-tools samplesv0.6.1 — Documentation & Interface Refinement
📝 Overview
This release focuses on refining all documentation and public interfaces to fully reflect the modular and production-ready architecture introduced in v0.6.0.
✅ Highlights
-
✍️ Full rewrite of all
docs/files to align with:rschatas the unified import style (import rsazure_openai_toolkit as rschat)- New usage flow via
main()andgenerate_response()instead of legacycall_azure_openai_handler() - Context, logging, and config examples using
SessionContext,get_model_config(), andInteractionLogger
-
📖 Updated
README.md:- Clearer v0.6.0 highlights
- Link to generated
samples/ - Stronger positioning for developers and production use
-
🔐 Security policy improvements:
- Added threat model section
- Documented attack surface and architecture safeguards
- Reinforced local-only guarantees for logging and context
-
🔗 Standardized all documentation links for compatibility across GitHub and PyPI
📦 No core logic or APIs changed — this is a safe upgrade focused on clarity, safety, and onboarding.
v0.6.0 – Modular architecture, CLI refactor, and context improvements
This release introduces a major structural refactor and sets the foundation for a more maintainable and professional toolkit.
🧱 Key Highlights
- Modular architecture: new package structure under
src/rsazure_openai_toolkit/with clearly scoped modules likecore/,cli/,env/,model_config/,session/,utils/, and more. - Object-oriented CLI:
rschatandrschat-toolsnow run on dedicated classes (ChatCLI,ToolsCLI) with clearer separation of responsibilities. - Unified utilities: all helpers consolidated into a single
utils/module for better reuse and discoverability. - Improved model config:
ModelConfigandget_model_config()now support reproducible generation with intuitive overrides. - SessionContext upgrades: supports full history (
.full.jsonl), prompt/config validation, metadata backups, and detailed feedback via CLI.
📦 Other Changes
- Renamed sample templates (
chat_loop_usage.py.j2, etc.) for clarity - Enhanced CLI output with token usage, system prompt status, and logging indicators
- Updated
pyproject.tomlto reflect the new structure - Removed deprecated files:
handler.py,integration.py,token_utils.py, andmodel_config_utils.py
This release prepares the toolkit for more advanced prompt tooling, plugin-style extensions, and cleaner developer experience going forward.
v0.5.2 – Fix .env Reload on CLI Commands
This patch release fixes a subtle issue where updated environment variables from .env were not being reflected on subsequent executions of the rschat CLI.
✅ What's Fixed
- ✅ Environment variables are now loaded with
override=True, ensuring fresh values are picked up on every CLI execution - ✅ This fix applies to both
rschatand all Jinja2 sample templates generated viarschat-tools - ✅ Resolves inconsistencies where updated values (e.g.,
AZURE_DEPLOYMENT_NAME) were ignored without restarting the terminal
🛠️ Notes for Developers
If you previously needed to restart your terminal or Python environment to reflect .env changes, this is no longer necessary.
Simply edit your .env file and rerun rschat — your latest values will now be respected.
📦 Internal Updates
- Bumped version to 0.5.2
- Updated
pyproject.tomland__init__.py - Added changelog entry for clarity and traceability