Skip to content

Re-vendor the Adaptive Cards renderer; keep a newer session with the same draft id on eviction - #49

Merged
oblomov-dev merged 2 commits into
mainfrom
claude/wizardly-ritchie-7sj2br
Oct 7, 2026
Merged

oblomov-dev merged 2 commits into
mainfrom
claude/wizardly-ritchie-7sj2br

Conversation

@oblomov-dev

@oblomov-dev oblomov-dev commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

1. Re-vendor the Adaptive Cards renderer

This re-vendors the renderer at abap2UI5/protocol@29aad60, which is abap2UI5/protocol#4 merged.

What it brings:

  • Markdown links: a text or fact containing Markdown syntax is now a RichTextBlock / TextRun. Before, a model value or a toast like [verify your account](https://evil.example) became a live link in Teams and Copilot.
  • htmlToText (used for message box details) is now linear.

The vendor script had to change. Since the last vendoring, the renderer shares its view and request halves with the protocol's other renderers (renderers/common/), and the view half reads profiles/portable-v1.json.

  • scripts/vendor-adaptive-cards.mjs now copies those files as well, to lib/vendor/adaptive-cards/common/ and profiles/.
  • It rewrites every relative path to the vendored copy. The agent modules still point at lib/.
  • A path to anything else in the protocol repository fails the vendoring and names the tables to extend.
  • test/vendor.test.mjs and test/ascii.test.mjs now walk the folder recursively, and the import rule resolves each import.
  • AGENTS.md and CHANGELOG.md are updated.

2. appclient: evicting a session keeps a newer one with the same draft id

Sessions started from one screen share its draft id. The playground's Pilot starts one from its mirror every time the reader's typing changes. When the oldest of these was evicted, remember( ) deleted every one of its ids from the index, including the id the newest session still used. Five starts with maxSessions: 4 gave "unknown session 'D1' - open sessions: D1, D1, D1, D1". Only ids that still point to the evicted session are dropped now, and there is a regression test in test/appclient.test.mjs.

Checks

  • A2UI5_MCP_SKIP_NETWORK_TESTS=1 npm test (with Chromium and a protocol checkout beside the repository): green. The renderer commit alone gave 442 passed, 15 skipped; the eviction fix adds one test.
  • node scripts/vendor-adaptive-cards.mjs ../protocol --check: up to date (7 files).

After merge, the playground and protocol re-vendor appclient / snapshot / viewxml at this commit.

🤖 Generated with Claude Code

https://claude.ai/code/session_013nvd2W2zUT5ZyemG91n2oq

claude added 2 commits October 7, 2026 22:56
The renderer now shares renderers/common/{view,request}.mjs with the
protocol's other renderers, and the view half reads the portable profile:
the vendor script copies them too (lib/vendor/adaptive-cards/common/,
profiles/) and rewrites every relative path to the vendored copy or, for
the agent modules, to lib/ - a path to anything else fails the vendoring.

Brings in: app text with Markdown syntax is a TextRun (no live links from
app data in Teams/Copilot); a linear htmlToText.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nvd2W2zUT5ZyemG91n2oq
Sessions started from one screen share its draft id - the playground's
Pilot starts one from its mirror on every change of the reader's typing -
and remember( ) deleted every id of the evicted session from the index,
the newest session's included: "unknown session 'D1' - open sessions: D1".
Only the ids that still name the evicted session are dropped now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nvd2W2zUT5ZyemG91n2oq
@oblomov-dev oblomov-dev changed the title Re-vendor the Adaptive Cards renderer from abap2UI5/protocol#4 Re-vendor the Adaptive Cards renderer; keep a newer session with the same draft id on eviction Oct 7, 2026
@oblomov-dev
oblomov-dev merged commit 82b75d8 into main Oct 7, 2026
3 checks passed
@oblomov-dev
oblomov-dev deleted the claude/wizardly-ritchie-7sj2br branch October 7, 2026 23:01
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.

2 participants