Skip to content

✨ feat(core): Add notification/share APIs & simplify orchestration planning schema - #56

Merged
bearlike merged 31 commits into
mainfrom
feat/api-plumbing-2
Feb 11, 2026
Merged

✨ feat(core): Add notification/share APIs & simplify orchestration planning schema#56
bearlike merged 31 commits into
mainfrom
feat/api-plumbing-2

Conversation

@bearlike

Copy link
Copy Markdown
Owner

Summary

  • Add API endpoints for notifications, attachments, and share links with supporting share storage.
  • Simplify orchestration plan schema/tool selection and improve reflection failure propagation.
  • Add per-session logs plus prompt, permission, and test updates across core and apps.

Key Changes

  • Core: replace action fields with tool fields; streamline planning/orchestrator/runner/reflection flows; add notifications and share store modules.
  • API/CLI/Chat: new backend endpoints and helpers; pass orchestration mode; update tests.
  • Ops: dependency bumps and formatter/test alignment across packages.

Tests

  • Not run (not requested).

Risks/Notes

  • Plan schema/tool field changes may impact downstream integrations.
  • New API endpoints require client compatibility updates.
  • Session log files may increase disk usage over time.

bearlike and others added 22 commits February 10, 2026 15:11
- 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
…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 &gt; 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 />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=uv&previous-version=46.0.4&new-version=46.0.5)](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

codecov Bot commented Feb 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.62359% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.51%. Comparing base (51de3c1) to head (32c0e7d).
⚠️ Report is 3 commits behind head on main.

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     
Components Coverage Δ
core 94.73% <100.00%> (+0.66%) ⬆️
tools 84.41% <100.00%> (+0.59%) ⬆️
cli 85.19% <97.14%> (ø)
api 96.06% <96.72%> (ø)
chat 93.64% <100.00%> (ø)
ha 93.88% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bearlike bearlike changed the title Add notification/share APIs and streamline orchestration planning ✨ feat(core): Add notification/share APIs & simplify orchestration planning schema Feb 11, 2026
- 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)
@bearlike
bearlike merged commit 2e8bf8e into main Feb 11, 2026
4 checks passed
@bearlike
bearlike deleted the feat/api-plumbing-2 branch February 11, 2026 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant