✨ feat(core): Add notification/share APIs & simplify orchestration planning schema - #56
Merged
Conversation
- Add optional mode parsing for async and legacy query endpoints.\n- Cover plan-mode passthrough in API tests.\n\nWhy: enable UI plan/act toggle via the REST API.\n\nTests: uv run pytest apps/meeseeks_api/tests/test_backend.py -q\n\nDependencies: None.
- Add notification and share stores plus API endpoints for notifications, attachments, and exports.\n- Emit session lifecycle notifications and add session-created events for listings.\n- Cover new endpoints with backend tests.\n\nWhy: enable frontend plumbing for notifications, attachments, and session sharing.\n\nTests: uv run pytest apps/meeseeks_api/tests/test_backend.py -q\n\nDependencies: None.
- Always attach error details to completion payloads when failures occur.\n- Guard orchestration loop to emit completion on unexpected exceptions.\n- Add tests for completion error payloads and exception completion.\n\nWhy: ensure frontend can render blocked/error traces with terminal events.\n\nTests: uv run pytest tests/test_orchestration.py::test_orchestrate_session_plan_mode_no_replan tests/test_orchestration.py::test_orchestrate_session_emits_completion_on_exception -q\n\nDependencies: None.
- Verify API endpoints always pass auto_approve to runtime calls.\n\nWhy: prevent frontend hangs waiting on approval prompts.\n\nTests: uv run pytest apps/meeseeks_api/tests/test_backend.py::test_api_auto_approves_permissions -q\n\nDependencies: None.
- Replace notification helper functions with NotificationService and add helper docstrings. - Tighten notification/share store typing and reset notification service in backend tests. Why: reduce module-level utilities and improve type clarity. Tests: uv run pytest apps/meeseeks_api/tests/test_backend.py -q Dependencies: None
- Sort backend imports and narrow notification dismiss ids payload. - Add missing __init__ docstrings, tighten notification/share-store typing, and wrap orchestrator line. Why: satisfy lint/type checks in CI. Tests: .venv/bin/ruff check; .venv/bin/mypy Dependencies: None
- Move NotificationService above module initialization to avoid NameError at import. Why: production 500 due to class referenced before definition. Tests: .venv/bin/ruff check apps/meeseeks_api/src/meeseeks_api/backend.py Dependencies: None
- Record reflection-driven revisions as last_error and emit tool_result errors. - Synthesize fallback output when only last_error is available. Why: avoid silent incomplete completions when reflection blocks progress. Tests: uv run pytest tests/test_orchestration.py::test_run_action_plan_reflection_blocks_progress tests/test_orchestration.py::test_response_synthesis_helpers -q Dependencies: None
- Include reflection status/notes in failure reason for tool-result errors. - Add step_reflection events to context to inform replanning. - Add orchestration test for graceful synthesis on reflection failure. Why: ensure orchestration continues to a user-facing failure response when reflection blocks progress. Tests: pytest tests/test_orchestration.py -q (failed: NumPy/SciPy binary mismatch: numpy 2.2.6 vs scipy requires <1.28) Dependencies: none
- Treat deepwiki/wiki queries as web intent and infer deepwiki tools as web_search capable. - Add planner intent tests for deepwiki filtering. Why: avoid empty action plans when users explicitly request DeepWiki. Tests: uv run pytest tests/test_planning_intent.py -q Dependencies: None
This reverts commit 0429ec5.
…irectory (#54) Bumps the uv group with 1 update in the / directory: [cryptography](https://github.com/pyca/cryptography). Updates `cryptography` from 46.0.4 to 46.0.5 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>46.0.5 - 2026-02-10</p> <pre><code> * An attacker could create a malicious public key that reveals portions of your private key when using certain uncommon elliptic curves (binary curves). This version now includes additional security checks to prevent this attack. This issue only affects binary elliptic curves, which are rarely used in real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and Atuin Automated Vulnerability Discovery Engine** for reporting the issue. **CVE-2026-26007** * Support for ``SECT*`` binary elliptic curves is deprecated and will be removed in the next release. <p>.. v46-0-4:<br /> </code></pre></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad"><code>06e120e</code></a> bump version for 46.0.5 release (<a href="https://redirect.github.com/pyca/cryptography/issues/14289">#14289</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c"><code>0eebb9d</code></a> EC check key on cofactor > 1 (<a href="https://redirect.github.com/pyca/cryptography/issues/14287">#14287</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e"><code>bedf6e1</code></a> fix openssl version on 46 branch (<a href="https://redirect.github.com/pyca/cryptography/issues/14220">#14220</a>)</li> <li>See full diff in <a href="https://github.com/pyca/cryptography/compare/46.0.4...46.0.5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/bearlike/Assistant/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishnakanth Alagiri <mail@kanth.tech>
… >=0.4.0,<0.6.0 in /packages/meeseeks_core (#53) Updates the requirements on [langchain-litellm](https://github.com/langchain-ai/langchain) to permit the latest version. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/langchain-ai/langchain/commits">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishnakanth Alagiri <mail@kanth.tech>
- Replace action plan schema with title/description steps and staged tool selection/execution. - Add planner/executor/updater prompts and adjust tool prompts + event payloads. - Update CLI/chat/API and tests for new plan events and step rendering. Why: decouple planning from tool calls and simplify orchestration flow. Tests: uv run ruff check . Tests: uv run mypy Tests: uv run pytest -vv Dependencies: none
- Normalize formatting across core/orchestrator, api, cli, and tests. - Collapse multiline string literals and whitespace-only diffs. Why: keep repo style consistent after hook reformat. Tests: uv run ruff check . Dependencies: none
- Add session log sink with contextual session_id filtering. - Wrap orchestration runs to emit per-session logs alongside console output. - Fall back to tool selection defaults when selector LLM fails. Why: make session debugging easier without disrupting existing logging. Tests: uv run ruff check packages/meeseeks_core/src/meeseeks_core/planning.py Tests: uv run pytest -vv tests/test_orchestration.py::test_orchestrate_session_completes tests/test_orchestration.py::test_orchestrate_session_synthesizes_response Dependencies: none
- Keep tool_result result populated when reflection requests retry/revise. - Preserve step output while still recording last_error for retries. - Expand allowed tool set for verification steps and web search/read pairing. - Add regression tests for reflection output preservation and web tool expansion. Why: avoid reflection-only loops and ensure UI can render error+output context. Tests: pytest tests/test_action_runner.py::test_action_runner_preserves_output_on_reflection tests/test_orchestration.py::test_orchestrate_session_expands_web_read tests/test_orchestration.py::test_orchestrate_session_adds_web_tools_for_verify_steps -q (failed: NumPy/SciPy ABI mismatch: numpy 2.2.6 vs scipy requires <1.28) Dependencies: none
- Add ToolSelector regression test for web_search to include web_url_read. - Normalize minor line wrapping in orchestration tests. Why: ensure verification steps can access web reads and keep tests readable. Tests: uv run pytest -vv tests/test_orchestration.py::test_run_action_plan_reflection_blocks_progress tests/test_planning_intent.py::test_tool_selector_includes_web_read_for_search Dependencies: none
- Expect direct-response short-circuit after tool failure in orchestration test. - Keep asserting error is passed to plan updater. Why: direct response now ends the loop and returns user-facing failure text. Tests: pytest tests/test_orchestration.py::test_orchestrate_session_marks_incomplete_on_failure -q (failed locally: NumPy/SciPy ABI mismatch: numpy 2.2.6 vs scipy requires <1.28) Dependencies: none
- Replace action_* fields with tool_id/operation/tool_input across core models, events, permissions, API/CLI, and tests. - Update prompts and tool integrations to use tool input naming. Why: Align execution schema with the StepExecutor plan contract and remove legacy action plan fields. Tests: uv run pytest tests/test_core_classes.py tests/test_permissions.py tests/test_action_runner.py tests/test_orchestration.py -q Dependencies: None
- Normalize formatter output for action runner/classes and permissions test. Why: Keep formatting consistent with enforced hooks. Tests: Not run (format-only; pre-push pytest already ran) Dependencies: None
- Remove unused _action_steps_complete helper from orchestrator. Why: Dead code after plan/step executor flow; keep single execution path. Tests: uv run pytest tests/test_orchestration.py -q Dependencies: None
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #56 +/- ##
==========================================
+ Coverage 89.75% 90.51% +0.76%
==========================================
Files 47 49 +2
Lines 6488 7046 +558
==========================================
+ Hits 5823 6378 +555
- Misses 665 668 +3
🚀 New features to boost your workflow:
|
- Update root/docs/app/HA docs to reflect current plan/tool flow and API endpoints. - Add package READMEs for meeseeks-core and meeseeks-tools. Why: Keep documentation aligned with the current tool_id/operation/tool_input contract and API surface. Tests: Not run (docs-only) Dependencies: None
- Set package, config, and container VERSION fields to 0.0.6 across apps and packages. - Update dependency constraints for meeseeks-* packages to >=0.0.6. Why: Align versioning with 0.0.x stability policy and remove prerelease suffixes. Tests: Not run (version metadata only)
- Update package, config, and container version fields to 0.0.7. - Align meeseeks-* dependency constraints with 0.0.7. Why: Advance working version after 0.0.6 release. Tests: Not run (version metadata only)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Key Changes
Tests
Risks/Notes