Closes audit Finding 7 (2026-05-20).
``agenerate`` was a 43-line async generator at the bottom of
``generate/stream.py`` that reimplemented the walk loop without
salience candidates, inner-loop admissibility, language candidates,
rotor admissibility, margin mode, trajectory recording, vault recall
scoring, or admissibility tracing — every capability the sync
``generate()`` has accrued since ADR-0022.
Caller audit:
* ``ChatRuntime.achat`` / ``ChatRuntime.arespond`` call the sync
``generate()`` under ``asyncio.to_thread`` semantics (the
explicit comment in ``achat`` documents this: "the underlying
call is still synchronous CPU-bound work").
* No production code, eval, demo, or test references
``agenerate``.
* Re-exported in ``generate/__init__.py`` but only as a public
name, never consumed.
The function was therefore reachable only by accident — any caller
wiring it would silently get a walk that ignores every ADR added
since ADR-0022. CLAUDE.md's "small, load-bearing PRs" doctrine
explicitly disfavors maintaining diverged reimplementations of the
core loop as a future hook.
Removed:
* ``async def agenerate`` (43 lines) from ``generate/stream.py``.
* ``agenerate`` from the ``generate/__init__.py`` star import and
``__all__``.
If a real async walk path becomes necessary later (e.g. once
``achat`` needs genuine off-thread execution), the right shape is a
thin ``asyncio.to_thread`` wrapper over the real ``generate()`` —
not a parallel reimplementation.
Verification:
* ``ripgrep agenerate`` — zero remaining references in the repo.
* ``core test --suite cognition`` — 120/0/1.
* ``core test --suite smoke`` — 67/0.
* ``core test --suite runtime`` — 19/0.
35 lines
721 B
Python
35 lines
721 B
Python
from .proposition import (
|
|
FrameRegistry,
|
|
FrameSlot,
|
|
Proposition,
|
|
PropositionFrame,
|
|
propose,
|
|
)
|
|
from .dialogue import (
|
|
DialogueRole,
|
|
DialogueTurn,
|
|
blade_alignment,
|
|
classify_dialogue_blade,
|
|
propose_dialogue,
|
|
trajectory_blade,
|
|
)
|
|
from .stream import generate
|
|
from .surface import SentenceAssembler, SentencePlan, assemble as assemble_surface
|
|
|
|
__all__ = [
|
|
"DialogueRole",
|
|
"DialogueTurn",
|
|
"FrameRegistry",
|
|
"FrameSlot",
|
|
"Proposition",
|
|
"PropositionFrame",
|
|
"blade_alignment",
|
|
"classify_dialogue_blade",
|
|
"generate",
|
|
"propose",
|
|
"propose_dialogue",
|
|
"trajectory_blade",
|
|
"SentenceAssembler",
|
|
"SentencePlan",
|
|
"assemble_surface",
|
|
]
|