chore(uv): refresh lockfile - #84
Closed
github-actions[bot] wants to merge 1 commit into
Closed
Conversation
github-actions
Bot
force-pushed
the
chore/uv-lock-refresh
branch
from
March 24, 2026 08:06
c0e50d4 to
abf43d6
Compare
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…ool build; Continue preserves interrupted turns (#84) ## Fixes - Capability gating had TWO enforcement surfaces and #83-B wired only one: AgentDef/skill catalogs filtered by capabilities, but SessionToolRegistry.build_for selected session tools by allowed_tools ALONE — so a runtime-granted capability (scg on an ordinary session) never produced its session tools for the ROOT agent; only sub-agents whose AgentDefs listed the tools got them. Evidence: all 60 original scg_memory calls in session 3fa5c983… came from depth-1 scg-mapper agents; the re-engaged root answered TOOLS-MISSING. Fix: SessionToolFactory.requires_capabilities (stamped from the plugin manifest in the orchestrator's existing components loop) and build_for(session_capabilities=) unions the allowlist gate with a requires⊆caps gate. Data-driven — no hardcoded capability string. - "Continue hides previous traces" was an API-side DATA-LOSS bug, not a render bug: continue-recovery truncated at the last completion event, and a run killed mid-flight (api restart) emits none — so it anchored on the PREVIOUS turn and physically deleted the interrupted turn (user msg + tool traces). Now anchors on the last recovery marker; a crash-interrupted turn survives. ## Transparency - Orchestrator.run overlays the augmented capability set into the TraceProvenance context — runtime-granted capabilities are filterable in the Langfuse capabilities facet. summarize_session surfaces capabilities + workspace; SessionItem chips them on the landing page (additive metadata chips, advertised-capabilities only). ## Validation - Regression tests at the real seams (all fail pre-fix, verified by stash-revert): build_for capability gate, tool_use_loop injection for the root agent, continue-preserves-interrupted-turn, capability-in-trace-metadata, summarize_session keys, SessionItem chips. - Live acceptance: re-engaged the #84 evidence session post-restart; the root agent issued 16 direct scg_memory writes (15 unique bridges + 1 retry); ws-7870f5ab graph 52→66 nodes, 62→87 edges, memory 33→47. Co-authored-by: Krishnakanth Alagiri <bearlike@users.noreply.github.com>
bearlike
pushed a commit
that referenced
this pull request
Jun 20, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com> (cherry picked from commit 15494ddd75cfa68d0bdb28c9333e334bdb0bfb10)
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…ool build; Continue preserves interrupted turns (#84) ## Fixes - Capability gating had TWO enforcement surfaces and #83-B wired only one: AgentDef/skill catalogs filtered by capabilities, but SessionToolRegistry.build_for selected session tools by allowed_tools ALONE — so a runtime-granted capability (scg on an ordinary session) never produced its session tools for the ROOT agent; only sub-agents whose AgentDefs listed the tools got them. Evidence: all 60 original scg_memory calls in session 3fa5c983… came from depth-1 scg-mapper agents; the re-engaged root answered TOOLS-MISSING. Fix: SessionToolFactory.requires_capabilities (stamped from the plugin manifest in the orchestrator's existing components loop) and build_for(session_capabilities=) unions the allowlist gate with a requires⊆caps gate. Data-driven — no hardcoded capability string. - "Continue hides previous traces" was an API-side DATA-LOSS bug, not a render bug: continue-recovery truncated at the last completion event, and a run killed mid-flight (api restart) emits none — so it anchored on the PREVIOUS turn and physically deleted the interrupted turn (user msg + tool traces). Now anchors on the last recovery marker; a crash-interrupted turn survives. ## Transparency - Orchestrator.run overlays the augmented capability set into the TraceProvenance context — runtime-granted capabilities are filterable in the Langfuse capabilities facet. summarize_session surfaces capabilities + workspace; SessionItem chips them on the landing page (additive metadata chips, advertised-capabilities only). ## Validation - Regression tests at the real seams (all fail pre-fix, verified by stash-revert): build_for capability gate, tool_use_loop injection for the root agent, continue-preserves-interrupted-turn, capability-in-trace-metadata, summarize_session keys, SessionItem chips. - Live acceptance: re-engaged the #84 evidence session post-restart; the root agent issued 16 direct scg_memory writes (15 unique bridges + 1 retry); ws-7870f5ab graph 52→66 nodes, 62→87 edges, memory 33→47. Co-authored-by: Krishnakanth Alagiri <bearlike@users.noreply.github.com>
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com> (cherry picked from commit 15494ddd75cfa68d0bdb28c9333e334bdb0bfb10)
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com> (cherry picked from commit 15494ddd75cfa68d0bdb28c9333e334bdb0bfb10)
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com> (cherry picked from commit 15494ddd75cfa68d0bdb28c9333e334bdb0bfb10)
bearlike
added a commit
that referenced
this pull request
Jun 20, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com> (cherry picked from commit 15494ddd75cfa68d0bdb28c9333e334bdb0bfb10)
bearlike
added a commit
that referenced
this pull request
Aug 3, 2026
…s + gpt-oss-120b search default Expose Agentic Search to Mewbo's own task-spawned engine agents (not just the external MCP), and default every search tier's "Auto" model to GPT OSS 120B. - New `agentic_search` SessionTool (mewbo_graph.plugins.scg.search): async by handle — `query` starts a real scg-search run and returns a run_id + status:"processing" immediately; `run_id` fetches the cited answer + `computed_at`; an identical recent query is idempotently reused. Owns no orchestration (no-parallel-loop invariant) — drives through a new down-only `mewbo_graph.scg.search_launcher.SearchLauncher` seam (mirrors MapPhaseSink). - App registers `RunStoreSearchLauncher` (reuses SearchRun.start + run store) in init_agentic_search; degrades to a structured "unavailable" error when unwired. - `search` is GET-classified → default-allowed → surfaces to any task agent the `scg` capability grants (#84). Direct graph tools (scg_route/observe/memory/ results) already self-available. - MCP `search`/`get_search_run` now surface `computed_at` on the fetch paths. - `ScgTierModelsConfig` fast/auto/deep all default to `openai/gpt-oss-120b` (schema regenerated); the tier is now a budget knob only. Tests: test_search_tool.py + test_search_launcher_impl.py (tool + app backend: start/fetch/idempotent-reuse/workspace-resolution). ruff + mypy clean. Co-authored-by: Mewbo <268600793+mewbo-ai[bot]@users.noreply.github.com>
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.
uv lockat repo root.