Skip to content

⬆️(deps-dev): Bump the python-root group across 1 directory with 2 updates - #71

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-root-ef890bd860
Closed

⬆️(deps-dev): Bump the python-root group across 1 directory with 2 updates#71
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-root-ef890bd860

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 9, 2026

Copy link
Copy Markdown
Contributor

Bumps the python-root group with 2 updates in the / directory: ruff and vulture.

Updates ruff from 0.15.2 to 0.15.5

Release notes

Sourced from ruff's releases.

0.15.5

Release Notes

Released on 2026-03-05.

Preview features

  • Discover Markdown files by default in preview mode (#23434)
  • [perflint] Extend PERF102 to comprehensions and generators (#23473)
  • [refurb] Fix FURB101 and FURB103 false positives when I/O variable is used later (#23542)
  • [ruff] Add fix for none-not-at-end-of-union (RUF036) (#22829)
  • [ruff] Fix false positive for re.split with empty string pattern (RUF055) (#23634)

Bug fixes

  • [fastapi] Handle callable class dependencies with __call__ method (FAST003) (#23553)
  • [pydocstyle] Fix numpy section ordering (D420) (#23685)
  • [pyflakes] Fix false positive for names shadowing re-exports (F811) (#23356)
  • [pyupgrade] Avoid inserting redundant None elements in UP045 (#23459)

Documentation

  • Document extension mapping for Markdown code formatting (#23574)
  • Update default Python version examples (#23605)

Other changes

  • Publish releases to Astral mirror (#23616)

Contributors

Install ruff 0.15.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.5/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

... (truncated)

Changelog

Sourced from ruff's changelog.

0.15.5

Released on 2026-03-05.

Preview features

  • Discover Markdown files by default in preview mode (#23434)
  • [perflint] Extend PERF102 to comprehensions and generators (#23473)
  • [refurb] Fix FURB101 and FURB103 false positives when I/O variable is used later (#23542)
  • [ruff] Add fix for none-not-at-end-of-union (RUF036) (#22829)
  • [ruff] Fix false positive for re.split with empty string pattern (RUF055) (#23634)

Bug fixes

  • [fastapi] Handle callable class dependencies with __call__ method (FAST003) (#23553)
  • [pydocstyle] Fix numpy section ordering (D420) (#23685)
  • [pyflakes] Fix false positive for names shadowing re-exports (F811) (#23356)
  • [pyupgrade] Avoid inserting redundant None elements in UP045 (#23459)

Documentation

  • Document extension mapping for Markdown code formatting (#23574)
  • Update default Python version examples (#23605)

Other changes

  • Publish releases to Astral mirror (#23616)

Contributors

0.15.4

Released on 2026-02-26.

This is a follow-up release to 0.15.3 that resolves a panic when the new rule PLR1712 was enabled with any rule that analyzes definitions, such as many of the ANN or D rules.

Bug fixes

  • Fix panic on access to definitions after analyzing definitions (#23588)
  • [pyflakes] Suppress false positive in F821 for names used before del in stub files (#23550)

... (truncated)

Commits
  • 5e4a3d9 Bump 0.15.5 (#23743)
  • 69c23cc [ty] Render all changed diagnostics in conformance.py (#23613)
  • 4926bd5 [ty] Split deferred checks out of types/infer/builder.rs (#23740)
  • 9a70f5e Discover markdown files by default in preview mode (#23434)
  • 3dc78b0 [ty] Use HasOptionalDefinition for except handlers (#23739)
  • a6a5e8d [ty] Fix precedence of all selector in TOML configurations (#23723)
  • 2a5384b [ty] Make all selector case sensitive (#23713)
  • db77d7b [ty] Add a diagnostic if a TypeVar is used to specialize a ParamSpec, or ...
  • db28490 [ty] Override home directory in ty tests (#23724)
  • 5f0fd91 [ty] More type-variable default validation (#23639)
  • Additional commits viewable in compare view

Updates vulture from 2.14 to 2.15

Release notes

Sourced from vulture's releases.

v2.15

2.15 (2026-03-04)

  • Handle while True loops without break statements (kreathon).
  • Add whitelist for ssl.SSLContext (tunnelsociety, #392).
  • Add more ruff rules (even-even).
  • Drop support for Python 3.8 (Jendrik Seipp, #398).
  • Add support for Python 3.14 (even-even).
Changelog

Sourced from vulture's changelog.

2.15 (2026-03-04)

  • Handle while True loops without break statements (kreathon).
  • Add whitelist for ssl.SSLContext (tunnelsociety, #392).
  • Add more ruff rules (even-even).
  • Drop support for Python 3.8 (Jendrik Seipp, #398).
  • Add support for Python 3.14 (even-even).
Commits
  • 6a4001f Update version number to 2.15 for release.
  • ef9e6de Fix release script.
  • 0649029 Add release date.
  • 01b9ff5 Add more ruff rules and fix warnings (#406)
  • 3d99061 Add tests for Python 3.14 (#404)
  • b11b7d4 Drop support for Python 3.8 (#399)
  • b9bcb58 Switch from setup.py to pyproject.toml and use GitHub Actions for PyPI releases.
  • 3c2bef4 Add whitelist for ssl.SSLContext (#392)
  • 1e210d9 Add link to VS Code extension.
  • 4ecc149 Update changelog and revise comment.
  • Additional commits viewable in compare view

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 commands and options

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

…dates

Bumps the python-root group with 2 updates in the / directory: [ruff](https://github.com/astral-sh/ruff) and [vulture](https://github.com/jendrikseipp/vulture).


Updates `ruff` from 0.15.2 to 0.15.5
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.2...0.15.5)

Updates `vulture` from 2.14 to 2.15
- [Release notes](https://github.com/jendrikseipp/vulture/releases)
- [Changelog](https://github.com/jendrikseipp/vulture/blob/main/CHANGELOG.md)
- [Commits](jendrikseipp/vulture@v2.14...v2.15)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-root
- dependency-name: vulture
  dependency-version: '2.15'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-root
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Mar 9, 2026
@codecov

codecov Bot commented Mar 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.51%. Comparing base (6bae573) to head (2d694af).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #71   +/-   ##
=======================================
  Coverage   90.51%   90.51%           
=======================================
  Files          49       49           
  Lines        7055     7055           
=======================================
  Hits         6386     6386           
  Misses        669      669           
Components Coverage Δ
core 94.72% <ø> (ø)
tools 84.41% <ø> (ø)
cli 85.19% <ø> (ø)
api 96.06% <ø> (ø)
chat 93.64% <ø> (ø)
ha 93.88% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dependabot @github

dependabot Bot commented on behalf of github Mar 23, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Mar 23, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/python-root-ef890bd860 branch March 23, 2026 16:46
bearlike added a commit that referenced this pull request Jun 9, 2026
…ex, structured outputs, and hardened 19-tool MCP surface (#71)

## Summary

A broad capability release spanning the Agentic Wiki engine, the knowledge
graph substrate, the MCP server contract, and a complete documentation
overhaul. Changes are grouped below by product surface.

---

### Agentic Wiki — Q&A engine rebuilt

The Q&A system is redesigned around a coordinating agent that fans out
parallel `wiki-qa-probe` leaf agents guided by ANN entry-point intuition,
replacing the prior flat capped page-reader. Key additions:

- **Cited-sources viewer**: inline `[path:line-range]` chips rendered as
  `SourceCard` components, lazily fetching file excerpts from a new
  `GET /v1/wiki/projects/<slug>/source` endpoint. Chip and card identity
  share a `CitationRef.domId` so the UI can scroll-link between them.
- **QA→memory flywheel**: `QaMemoryDepositor` runs off the latency path
  and auto-deposits durable Q&A findings as memory notes via the same
  `InsightIngestor` used by the enrichment pipeline.
- **DeepWiki-parity verbosity**: the brevity floor is a prompt-only
  constraint; `QaFinalizer` never truncates, probes are un-capped, and
  `sources` emit is the accept state.
- **Session provenance**: sessions are classified by origin (wiki job/QA,
  agentic search, channel, user) from tags and the first context event;
  `SessionOriginBadge` and per-origin filters surface this in the console.

---

### Agentic Wiki — Indexing resilience

Several independent failure modes that caused silent data loss or stuck
jobs are resolved:

- `WikiFinalizeTool` now overrides `should_terminate_run()`, mirroring
  `EmitStructuredResponseTool`, eliminating the post-finalize LLM turn
  and teardown wedge window.
- `WikiIndexingSessionEndHook` marks any non-terminal job `interrupted`
  on session end; `JobRecovery` re-drives it through a checkpoint-aware
  `WikiResume`, making the happy-path invariant: finalize sets `complete`
  before the session ends, so the hook no-ops on success.
- Parser-download 504s during `wiki_build_graph` are resolved with a
  retry, a pinned `tree-sitter-language-pack` version, and Docker
  XDG pre-warm.
- Reindex after a retired model no longer silently re-selects that model;
  the stored submission's model is verified against the live proxy before
  replay, with a fallback to config.

---

### Knowledge Graph — Entity layer and structured response

- **Abstract entity layer**: a `ResolutionLadder` unifies AST symbols,
  graph entities, and memory notes into one multiplex. Entity IDs are
  deterministic; GraphRAG post-AST enrichment runs at index time.
  `KnowledgeGraphView` assembles the three layers with cross-layer anchor
  reconciliation via `resolve_many`.
- **Credential persistence**: per-slug credentials are stored
  plaintext-behind-seam (redacted in all API surfaces); a restart
  refreshes capabilities using the slug-keyed credential.
- **Structured-response terminal**: `EmitStructuredResponseTool` validates
  the agent's payload against the caller's JSON Schema inline and
  terminates the loop, replacing the previous open-ended turn. The async
  event is now persisted correctly on both the sync and async code paths.

---

### MCP server — Contract hardening and 7 new tools

The MCP surface is hardened to five invariants, each at one seam:
envelope-only error surface (`_enveloped` + HTML-drop in `rest.py`),
`bounded_poll` + `get_*_run` companion pattern for all long-running tools,
smallest-payload projections, schema-equals-behaviour, and `list_projects`
as the discovery entry point.

Seven tools are added, bringing the total to 19:

| Tool | Surface |
|---|---|
| `get_wiki_answer` | Async wiki Q&A with run-id re-fetch |
| `list_projects` | Workspace discovery |
| `list_search_workspaces` | Saved search workspace listing |
| `search` | Cited agentic search |
| `get_search_run` | Search run re-fetch |
| `structured_query` | Schema-constrained agentic session |
| `get_structured_run` | Structured run re-fetch |

---

### Agentic Search — SCG documentation

`features-search.md` is rewritten from a vague one-paragraph description
to a full technical reference:

- Five node types and six named edge types with content-addressed SHA-1
  node IDs
- Five-phase map pipeline (Connect → Introspect → Parse → Link → Finalize)
- Zero-LLM routing: embed → cosine ANN → one-hop graph expansion →
  `cosine_similarity + edge_weight` ranking → scoped probe agents
- `TypeAligner` cross-source alignment: Jaccard field-overlap bands with
  LLM adjudication only in the ambiguous tier
- Learned memory layer reusing wiki's `InsightIngestor` + multiplex store
- Search tiers (Fast / Auto / Deep) and what they control
- Two new `flowchart LR` mermaid diagrams

---

### Documentation overhaul

New and significantly updated pages:

- **New**: Structured Outputs, Policies, Monitors — each with a
  `flowchart LR` mermaid introduction diagram
- **Updated**: Agentic Wiki (entity graph, probe fan-out, cited sources,
  memory flywheel, copy badge, model fallback, credential persistence),
  Agentic Search (full SCG technical depth), MCP Server (19 tools),
  Architecture (Policies + Monitors sections), Session Runtime (provenance
  section), home page (Control & Safety card)
- **Fixed**: six broken `configuration.md` anchor links
  (`#agentconfig → #agent`, `#tokenbudgetconfig → #token-budget`, etc.),
  syntax-highlighted code blocks, em dashes decomposed into shorter
  sentences throughout

---------

Co-authored-by: mewbo-ai[bot] <268600793+mewbo-ai[bot]@users.noreply.github.com>
Reviewed-on: https://git.hurricane.home/bearlike/Assistant/pulls/71
bearlike added a commit that referenced this pull request Jun 9, 2026
…tract entity multiplex, structured outputs endpoint, and 7 new MCP tools (#71)

## New features

### Agentic Wiki — Q&A engine rebuilt

- **Probe fan-out architecture**: a coordinating `wiki-qa` agent fans out parallel `wiki-qa-probe` leaf agents guided by ANN entry-point intuition, replacing the prior flat capped page-reader.
- **Cited-sources viewer**: inline `[path:line-range]` chips rendered as `SourceCard` components, lazily fetching file excerpts from a new `GET /v1/wiki/projects/<slug>/source` endpoint. Chip and card identity share a `CitationRef.domId` for scroll-linking.
- **QA→memory flywheel**: `QaMemoryDepositor` runs off the latency path and auto-deposits durable Q&A findings as memory notes via the same `InsightIngestor` used by the enrichment pipeline.
- **DeepWiki-parity verbosity**: brevity floor is a prompt-only constraint; `QaFinalizer` never truncates and probes are un-capped.

### Knowledge Graph — Three-layer entity multiplex

- **Abstract entity layer**: `ResolutionLadder` unifies AST symbols, graph entities, and memory notes into one multiplex. Entity IDs are deterministic; GraphRAG post-AST enrichment runs at index time.
- **`KnowledgeGraphView`**: assembles AST + entity + memory layers with cross-layer anchor reconciliation via `resolve_many`. Labels are now surfaced and union-merged across all merge paths.
- **Entity resolution for search**: `ScgAnchorResolver` implements the wiki's `StructureProvider` protocol, making SCG capability and entity-type nodes first-class participants in the same `ResolutionLadder` as wiki entities.
- **Credential persistence**: per-slug credentials stored plaintext-behind-seam, redacted in all API surfaces; restart refreshes capabilities using the slug-keyed credential.

### Structured Outputs — new endpoint

- `POST /v1/structured` starts an agentic session constrained to a caller-supplied JSON Schema. `EmitStructuredResponseTool` validates the payload inline and terminates the loop.
- Async run lifecycle with `GET /v1/structured/{run_id}` polling. `/v1/structured/fast` streams partial tokens.
- Workspace grounding: pass `workspace` and the session searches connected sources before writing a single output token.
- The async `structured_output` event is now persisted correctly on both the sync and async code paths.

### MCP server — 7 new tools (19 total)

Seven tools added, bringing the server to a 19-tool surface:

| Tool | What it does |
|---|---|
| `get_wiki_answer` | Async wiki Q&A with run-id re-fetch |
| `list_projects` | Workspace discovery entry point |
| `list_search_workspaces` | Saved search workspace listing |
| `search` | Cited agentic search |
| `get_search_run` | Search run re-fetch |
| `structured_query` | Schema-constrained agentic session |
| `get_structured_run` | Structured run re-fetch |

### Console and API

- **Session provenance**: sessions classified by origin (wiki job/QA, agentic search, channel, user) from tags and the first context event; `SessionOriginBadge` and per-origin filters in the console session list.
- **Wiki "Copy badge"**: static CDN SVG + per-repo link to `Project.landingPageId`; one-click README affordance from the wiki landing page.

---

## Stability and resilience

### Agentic Wiki — Indexing

- `WikiFinalizeTool` now overrides `should_terminate_run()`, eliminating the post-finalize LLM turn and teardown wedge window.
- `WikiIndexingSessionEndHook` marks any non-terminal job `interrupted` on session end; `JobRecovery` re-drives it through a checkpoint-aware `WikiResume`.
- Parser-download 504s during `wiki_build_graph` resolved with retry, pinned `tree-sitter-language-pack` version, and Docker XDG pre-warm.
- Reindex after a retired model no longer silently re-selects it; the stored submission's model is verified against the live proxy before replay.
- Model-fallback auto-heal with cap-2 sticky escalation; rescue model is the last fallback-ladder entry.

### MCP server — Contract hardening

Five invariants, each at one seam: envelope-only error surface (`_enveloped` + HTML-drop), `bounded_poll` + `get_*_run` companion pattern, smallest-payload projections, schema-equals-behaviour, and `list_projects` as the discovery entry point.

---

## Documentation

New pages: Structured Outputs, Policies, Monitors — each with a `flowchart LR` mermaid diagram. Updated: Agentic Wiki, Agentic Search (full SCG technical depth including entity resolution and shared multiplex), MCP Server (19 tools), Architecture, Session Runtime, home page. Fixed six broken `configuration.md` anchor links.

---------

Co-authored-by: mewbo-ai[bot] <268600793+mewbo-ai[bot]@users.noreply.github.com>
Reviewed-on: https://git.hurricane.home/bearlike/Assistant/pulls/71
bearlike added a commit that referenced this pull request Jun 20, 2026
…tract entity multiplex, structured outputs endpoint, and 7 new MCP tools (#71)

## New features

### Agentic Wiki — Q&A engine rebuilt

- **Probe fan-out architecture**: a coordinating `wiki-qa` agent fans out parallel `wiki-qa-probe` leaf agents guided by ANN entry-point intuition, replacing the prior flat capped page-reader.
- **Cited-sources viewer**: inline `[path:line-range]` chips rendered as `SourceCard` components, lazily fetching file excerpts from a new `GET /v1/wiki/projects/<slug>/source` endpoint. Chip and card identity share a `CitationRef.domId` for scroll-linking.
- **QA→memory flywheel**: `QaMemoryDepositor` runs off the latency path and auto-deposits durable Q&A findings as memory notes via the same `InsightIngestor` used by the enrichment pipeline.
- **DeepWiki-parity verbosity**: brevity floor is a prompt-only constraint; `QaFinalizer` never truncates and probes are un-capped.

### Knowledge Graph — Three-layer entity multiplex

- **Abstract entity layer**: `ResolutionLadder` unifies AST symbols, graph entities, and memory notes into one multiplex. Entity IDs are deterministic; GraphRAG post-AST enrichment runs at index time.
- **`KnowledgeGraphView`**: assembles AST + entity + memory layers with cross-layer anchor reconciliation via `resolve_many`. Labels are now surfaced and union-merged across all merge paths.
- **Entity resolution for search**: `ScgAnchorResolver` implements the wiki's `StructureProvider` protocol, making SCG capability and entity-type nodes first-class participants in the same `ResolutionLadder` as wiki entities.
- **Credential persistence**: per-slug credentials stored plaintext-behind-seam, redacted in all API surfaces; restart refreshes capabilities using the slug-keyed credential.

### Structured Outputs — new endpoint

- `POST /v1/structured` starts an agentic session constrained to a caller-supplied JSON Schema. `EmitStructuredResponseTool` validates the payload inline and terminates the loop.
- Async run lifecycle with `GET /v1/structured/{run_id}` polling. `/v1/structured/fast` streams partial tokens.
- Workspace grounding: pass `workspace` and the session searches connected sources before writing a single output token.
- The async `structured_output` event is now persisted correctly on both the sync and async code paths.

### MCP server — 7 new tools (19 total)

Seven tools added, bringing the server to a 19-tool surface:

| Tool | What it does |
|---|---|
| `get_wiki_answer` | Async wiki Q&A with run-id re-fetch |
| `list_projects` | Workspace discovery entry point |
| `list_search_workspaces` | Saved search workspace listing |
| `search` | Cited agentic search |
| `get_search_run` | Search run re-fetch |
| `structured_query` | Schema-constrained agentic session |
| `get_structured_run` | Structured run re-fetch |

### Console and API

- **Session provenance**: sessions classified by origin (wiki job/QA, agentic search, channel, user) from tags and the first context event; `SessionOriginBadge` and per-origin filters in the console session list.
- **Wiki "Copy badge"**: static CDN SVG + per-repo link to `Project.landingPageId`; one-click README affordance from the wiki landing page.

---

## Stability and resilience

### Agentic Wiki — Indexing

- `WikiFinalizeTool` now overrides `should_terminate_run()`, eliminating the post-finalize LLM turn and teardown wedge window.
- `WikiIndexingSessionEndHook` marks any non-terminal job `interrupted` on session end; `JobRecovery` re-drives it through a checkpoint-aware `WikiResume`.
- Parser-download 504s during `wiki_build_graph` resolved with retry, pinned `tree-sitter-language-pack` version, and Docker XDG pre-warm.
- Reindex after a retired model no longer silently re-selects it; the stored submission's model is verified against the live proxy before replay.
- Model-fallback auto-heal with cap-2 sticky escalation; rescue model is the last fallback-ladder entry.

### MCP server — Contract hardening

Five invariants, each at one seam: envelope-only error surface (`_enveloped` + HTML-drop), `bounded_poll` + `get_*_run` companion pattern, smallest-payload projections, schema-equals-behaviour, and `list_projects` as the discovery entry point.

---

## Documentation

New pages: Structured Outputs, Policies, Monitors — each with a `flowchart LR` mermaid diagram. Updated: Agentic Wiki, Agentic Search (full SCG technical depth including entity resolution and shared multiplex), MCP Server (19 tools), Architecture, Session Runtime, home page. Fixed six broken `configuration.md` anchor links.

---------

Co-authored-by: mewbo-ai[bot] <268600793+mewbo-ai[bot]@users.noreply.github.com>
Reviewed-on: https://git.hurricane.home/bearlike/Assistant/pulls/71
bearlike added a commit that referenced this pull request Jun 20, 2026
…tract entity multiplex, structured outputs endpoint, and 7 new MCP tools (#71)

## New features

### Agentic Wiki — Q&A engine rebuilt

- **Probe fan-out architecture**: a coordinating `wiki-qa` agent fans out parallel `wiki-qa-probe` leaf agents guided by ANN entry-point intuition, replacing the prior flat capped page-reader.
- **Cited-sources viewer**: inline `[path:line-range]` chips rendered as `SourceCard` components, lazily fetching file excerpts from a new `GET /v1/wiki/projects/<slug>/source` endpoint. Chip and card identity share a `CitationRef.domId` for scroll-linking.
- **QA→memory flywheel**: `QaMemoryDepositor` runs off the latency path and auto-deposits durable Q&A findings as memory notes via the same `InsightIngestor` used by the enrichment pipeline.
- **DeepWiki-parity verbosity**: brevity floor is a prompt-only constraint; `QaFinalizer` never truncates and probes are un-capped.

### Knowledge Graph — Three-layer entity multiplex

- **Abstract entity layer**: `ResolutionLadder` unifies AST symbols, graph entities, and memory notes into one multiplex. Entity IDs are deterministic; GraphRAG post-AST enrichment runs at index time.
- **`KnowledgeGraphView`**: assembles AST + entity + memory layers with cross-layer anchor reconciliation via `resolve_many`. Labels are now surfaced and union-merged across all merge paths.
- **Entity resolution for search**: `ScgAnchorResolver` implements the wiki's `StructureProvider` protocol, making SCG capability and entity-type nodes first-class participants in the same `ResolutionLadder` as wiki entities.
- **Credential persistence**: per-slug credentials stored plaintext-behind-seam, redacted in all API surfaces; restart refreshes capabilities using the slug-keyed credential.

### Structured Outputs — new endpoint

- `POST /v1/structured` starts an agentic session constrained to a caller-supplied JSON Schema. `EmitStructuredResponseTool` validates the payload inline and terminates the loop.
- Async run lifecycle with `GET /v1/structured/{run_id}` polling. `/v1/structured/fast` streams partial tokens.
- Workspace grounding: pass `workspace` and the session searches connected sources before writing a single output token.
- The async `structured_output` event is now persisted correctly on both the sync and async code paths.

### MCP server — 7 new tools (19 total)

Seven tools added, bringing the server to a 19-tool surface:

| Tool | What it does |
|---|---|
| `get_wiki_answer` | Async wiki Q&A with run-id re-fetch |
| `list_projects` | Workspace discovery entry point |
| `list_search_workspaces` | Saved search workspace listing |
| `search` | Cited agentic search |
| `get_search_run` | Search run re-fetch |
| `structured_query` | Schema-constrained agentic session |
| `get_structured_run` | Structured run re-fetch |

### Console and API

- **Session provenance**: sessions classified by origin (wiki job/QA, agentic search, channel, user) from tags and the first context event; `SessionOriginBadge` and per-origin filters in the console session list.
- **Wiki "Copy badge"**: static CDN SVG + per-repo link to `Project.landingPageId`; one-click README affordance from the wiki landing page.

---

## Stability and resilience

### Agentic Wiki — Indexing

- `WikiFinalizeTool` now overrides `should_terminate_run()`, eliminating the post-finalize LLM turn and teardown wedge window.
- `WikiIndexingSessionEndHook` marks any non-terminal job `interrupted` on session end; `JobRecovery` re-drives it through a checkpoint-aware `WikiResume`.
- Parser-download 504s during `wiki_build_graph` resolved with retry, pinned `tree-sitter-language-pack` version, and Docker XDG pre-warm.
- Reindex after a retired model no longer silently re-selects it; the stored submission's model is verified against the live proxy before replay.
- Model-fallback auto-heal with cap-2 sticky escalation; rescue model is the last fallback-ladder entry.

### MCP server — Contract hardening

Five invariants, each at one seam: envelope-only error surface (`_enveloped` + HTML-drop), `bounded_poll` + `get_*_run` companion pattern, smallest-payload projections, schema-equals-behaviour, and `list_projects` as the discovery entry point.

---

## Documentation

New pages: Structured Outputs, Policies, Monitors — each with a `flowchart LR` mermaid diagram. Updated: Agentic Wiki, Agentic Search (full SCG technical depth including entity resolution and shared multiplex), MCP Server (19 tools), Architecture, Session Runtime, home page. Fixed six broken `configuration.md` anchor links.

---------

Co-authored-by: mewbo-ai[bot] <268600793+mewbo-ai[bot]@users.noreply.github.com>
Reviewed-on: https://git.hurricane.home/bearlike/Assistant/pulls/71
bearlike added a commit that referenced this pull request Aug 3, 2026
…tract entity multiplex, structured outputs endpoint, and 7 new MCP tools (#71)

## New features

### Agentic Wiki — Q&A engine rebuilt

- **Probe fan-out architecture**: a coordinating `wiki-qa` agent fans out parallel `wiki-qa-probe` leaf agents guided by ANN entry-point intuition, replacing the prior flat capped page-reader.
- **Cited-sources viewer**: inline `[path:line-range]` chips rendered as `SourceCard` components, lazily fetching file excerpts from a new `GET /v1/wiki/projects/<slug>/source` endpoint. Chip and card identity share a `CitationRef.domId` for scroll-linking.
- **QA→memory flywheel**: `QaMemoryDepositor` runs off the latency path and auto-deposits durable Q&A findings as memory notes via the same `InsightIngestor` used by the enrichment pipeline.
- **DeepWiki-parity verbosity**: brevity floor is a prompt-only constraint; `QaFinalizer` never truncates and probes are un-capped.

### Knowledge Graph — Three-layer entity multiplex

- **Abstract entity layer**: `ResolutionLadder` unifies AST symbols, graph entities, and memory notes into one multiplex. Entity IDs are deterministic; GraphRAG post-AST enrichment runs at index time.
- **`KnowledgeGraphView`**: assembles AST + entity + memory layers with cross-layer anchor reconciliation via `resolve_many`. Labels are now surfaced and union-merged across all merge paths.
- **Entity resolution for search**: `ScgAnchorResolver` implements the wiki's `StructureProvider` protocol, making SCG capability and entity-type nodes first-class participants in the same `ResolutionLadder` as wiki entities.
- **Credential persistence**: per-slug credentials stored plaintext-behind-seam, redacted in all API surfaces; restart refreshes capabilities using the slug-keyed credential.

### Structured Outputs — new endpoint

- `POST /v1/structured` starts an agentic session constrained to a caller-supplied JSON Schema. `EmitStructuredResponseTool` validates the payload inline and terminates the loop.
- Async run lifecycle with `GET /v1/structured/{run_id}` polling. `/v1/structured/fast` streams partial tokens.
- Workspace grounding: pass `workspace` and the session searches connected sources before writing a single output token.
- The async `structured_output` event is now persisted correctly on both the sync and async code paths.

### MCP server — 7 new tools (19 total)

Seven tools added, bringing the server to a 19-tool surface:

| Tool | What it does |
|---|---|
| `get_wiki_answer` | Async wiki Q&A with run-id re-fetch |
| `list_projects` | Workspace discovery entry point |
| `list_search_workspaces` | Saved search workspace listing |
| `search` | Cited agentic search |
| `get_search_run` | Search run re-fetch |
| `structured_query` | Schema-constrained agentic session |
| `get_structured_run` | Structured run re-fetch |

### Console and API

- **Session provenance**: sessions classified by origin (wiki job/QA, agentic search, channel, user) from tags and the first context event; `SessionOriginBadge` and per-origin filters in the console session list.
- **Wiki "Copy badge"**: static CDN SVG + per-repo link to `Project.landingPageId`; one-click README affordance from the wiki landing page.

---

## Stability and resilience

### Agentic Wiki — Indexing

- `WikiFinalizeTool` now overrides `should_terminate_run()`, eliminating the post-finalize LLM turn and teardown wedge window.
- `WikiIndexingSessionEndHook` marks any non-terminal job `interrupted` on session end; `JobRecovery` re-drives it through a checkpoint-aware `WikiResume`.
- Parser-download 504s during `wiki_build_graph` resolved with retry, pinned `tree-sitter-language-pack` version, and Docker XDG pre-warm.
- Reindex after a retired model no longer silently re-selects it; the stored submission's model is verified against the live proxy before replay.
- Model-fallback auto-heal with cap-2 sticky escalation; rescue model is the last fallback-ladder entry.

### MCP server — Contract hardening

Five invariants, each at one seam: envelope-only error surface (`_enveloped` + HTML-drop), `bounded_poll` + `get_*_run` companion pattern, smallest-payload projections, schema-equals-behaviour, and `list_projects` as the discovery entry point.

---

## Documentation

New pages: Structured Outputs, Policies, Monitors — each with a `flowchart LR` mermaid diagram. Updated: Agentic Wiki, Agentic Search (full SCG technical depth including entity resolution and shared multiplex), MCP Server (19 tools), Architecture, Session Runtime, home page. Fixed six broken `configuration.md` anchor links.

---------

Co-authored-by: mewbo-ai[bot] <268600793+mewbo-ai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants