fix(tui): fixed inline image transmit replay for full paint

- Adjusted image budget IDs to use a shared 24-bit seed and wrap safely so new budgets no longer collide.
- Added transmit-state reset and changed image output ordering so full paints can replay image data after terminal clears.
- Updated image and protocol tests to match the new wrapped-id behavior and cursor-save/restore-wrapped transmit sequences.
This commit is contained in:
can1357
2026-06-17 15:03:32 +02:00
parent 0075014fe9
commit 4678c80cd8
6 changed files with 64 additions and 24 deletions
@@ -55,8 +55,13 @@ it("uses independent graphics ids for repeated probe panels", () => {
const secondBytes = second.render(80).join("\n");
budget.endPass();
expect(firstBytes).toContain("i=1");
expect(secondBytes).toContain("i=2");
const firstMatch = firstBytes.match(/i=(\d+)/);
const secondMatch = secondBytes.match(/i=(\d+)/);
expect(firstMatch).not.toBeNull();
expect(secondMatch).not.toBeNull();
const firstId = Number(firstMatch![1]);
const secondId = Number(secondMatch![1]);
expect(secondId).toBe((firstId + 1) & 0xffffff || 1);
});
describe("buildLargeTextLines", () => {