fix(web-presenter): dim-Markdown web fallback, memoize fetch conversion, strip note residue

Route a `web` result card's raw-content fallback through the TUI's dim
Markdown path (render() only recognized `card: 'generic'` as markdown
content, so web fallback rendered as bare undimmed text).

Memoize renderFetchOutput per (result, maxOutputChars) so the registry's
twin output.render / output.presentationMeta calls on the same frozen
result run one HTML->markdown conversion instead of two.

Remove the trailing `</content>`/`</invoke>` protocol residue from both
sides of the web-result-card Agent Note and re-record the pairing.
This commit is contained in:
Chinesezjc
2026-07-30 20:48:19 +08:00
parent 83c93bb18f
commit 689dcfe7d5
7 changed files with 90 additions and 11 deletions
@@ -42,5 +42,3 @@ A future web tool that wants this card declares `presentResult` returning a `car
- [Tagged render-intent union for tool-call presentation](../architecture/2026-07-02-tool-render-intent-union.md) — the `card`-tagged vocabulary this extends with the `web` arm.
- [Web terminal card](2026-07-28-web-terminal-card.md) — the precedent that carried the bash `terminal` render intent to the browser; the web frontend consumer of this arm is its analogue, deferred to a later PR.
</content>
</invoke>