Skip to content

feat(lessons): record failed-run lessons#91

Merged
corylanou merged 2 commits into
mainfrom
symphony/digitaldrywood_symphony_89
May 22, 2026
Merged

feat(lessons): record failed-run lessons#91
corylanou merged 2 commits into
mainfrom
symphony/digitaldrywood_symphony_89

Conversation

@corylanou
Copy link
Copy Markdown

Context

Adds opt-in lessons memory for failed Symphony runs. Fixes #89.

TL;DR

Record HEAD-unchanged lessons and recall them into future prompts.

Summary

  • Add capped markdown lessons storage with append, read, and recent APIs.
  • Inject recent lessons into first-turn prompts when agent.lessons is enabled.
  • Record HEAD-unchanged post-mortem entries with unavailable fallback fields.
  • Document agent.lessons config and add focused storage and runner tests.

Alternatives

  • Kept storage in repo markdown instead of SQLite so maintainers can review and prune it.

Test Plan

  • make -C elixir all
  • mise exec -- mix test test/symphony_elixir/lessons_test.exs test/symphony_elixir/agent_runner_lessons_test.exs test/symphony_elixir/workspace_and_config_test.exs

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: a57ede7d8a

ℹ️ 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".

Comment thread elixir/lib/symphony_elixir/config/schema.ex Outdated
Comment thread elixir/lib/symphony_elixir/lessons.ex Outdated
Summary:
- Add repository-local lessons storage with rolling cap and recent recall.
- Inject recent lessons into first-turn prompts when the feature is enabled.
- Capture HEAD-unchanged runs with Codex post-mortems and fallback text.
- Document the agent.lessons config and add focused coverage.

Rationale:
- Failed runs currently lose useful context before the next dispatch.
- A plain markdown file keeps the memory reviewable and versionable with the
  target repository while leaving commit policy to maintainers.

Tests:
- mise exec -- mix test test/symphony_elixir/lessons_test.exs test/symphony_elixir/agent_runner_lessons_test.exs test/symphony_elixir/workspace_and_config_test.exs
- mise exec -- make all

Co-authored-by: Codex <codex@openai.com>
@corylanou corylanou force-pushed the symphony/digitaldrywood_symphony_89 branch from a57ede7 to d18295b Compare May 22, 2026 14:03
@corylanou corylanou merged commit dabf742 into main May 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

symphony Managed by Symphony

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(lessons): record failure causes per repo and surface in future agent prompts

1 participant