Skip to content

Use multi-line TOML strings for prompt/template fields#777

Merged
lchoquel merged 4 commits intodevfrom
fix/Multi-line-prompts
Mar 23, 2026
Merged

Use multi-line TOML strings for prompt/template fields#777
lchoquel merged 4 commits intodevfrom
fix/Multi-line-prompts

Conversation

@lchoquel
Copy link
Copy Markdown
Member

@lchoquel lchoquel commented Mar 23, 2026

Summary

  • String fields (prompt, system_prompt, template) containing newlines were serialized as single-line TOML strings with \n escapes
  • Now uses triple-quoted (""") multi-line basic strings via tomlkit.string(value, multiline=True) for readability
  • Applied to all 4 affected locations: PipeLLM prompt/system_prompt, PipeCompose template, PipeImgGen prompt

Test plan

  • Added TestMultilineTomlStrings with 5 test cases covering all affected fields and single-line preservation
  • All 4119 tests pass
  • Linting and type checks pass (make agent-check)

🤖 Generated with Claude Code


Summary by cubic

Serialize multi-line prompts, templates, and descriptions as TOML triple-quoted strings via a shared formatter for consistent, readable output. Single-line values (including empty strings) stay basic; long strings auto-switch to multi-line.

  • Bug Fixes

    • Use format_toml_string for prompt, system_prompt, template, and description in PipeLLM, PipeCompose, PipeImgGen, pipe_cmd, and concept_cmd (including structure field descriptions).
    • Multi-line strings get consistent leading/trailing newline handling; single-line and empty strings remain unchanged.
  • Refactors

    • Extracted format_toml_string utility and wired it into MthdsFactory and agent CLI.
    • Added unit tests for the formatter (empty strings, newlines, long strings, literal preference).

Written for commit 8a3cd45. Summary will update on new commits.

…ields

String fields containing newlines were serialized as single-line TOML strings
with \n escapes. Now they use triple-quoted (""") multi-line basic strings
for readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 98e227f974

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

lchoquel and others added 2 commits March 23, 2026 18:23
…oncept fields

Moves TOML multi-line string formatting logic from MthdsFactory into a shared
pure function in toml_string_utils.py (no config dependency). Both MthdsFactory
(with config) and the agent CLI (with defaults) now use the same code path.

Also applies formatting to description fields in pipe_cmd and concept_cmd,
and to structure field descriptions in concept_cmd.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lchoquel
Copy link
Copy Markdown
Member Author

@cubic-ai-dev

@lchoquel lchoquel merged commit 62044dc into dev Mar 23, 2026
26 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Mar 23, 2026
@lchoquel lchoquel deleted the fix/Multi-line-prompts branch March 23, 2026 19:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants