You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by "wu-sheng (via GitHub)" <gi...@apache.org> on 2026/10/13 07:19:11 UTC
[PR] Show a conversation after a removal on the page, and draw the bodies landed after it [skywalking-ai-sessionizer]
wu-sheng opened a new pull request, #67:
URL: https://github.com/apache/skywalking-ai-sessionizer/pull/67
Step 6 of retention: the page. Until now the page drew a removed step with no text, but said nothing above the conversation. Its Prompt tab could not draw a provider body landed after a removal, because the renderer rebuilds bodies in the browser from the files the page serves, and a removed file was left out.
Depends on apache/skywalking-horizon-ui#192, which this PR pins by its branch commit. Once #192 merges, the pin moves to the merge commit.
### What changes
- **The files route** serves a removed file as its skeleton, uncompressed, with `kept`:
- `bodies`: the body of each record the session's store kept as a chain tip, by record id;
- `pieces`: each removed piece a later body cites, by SHA-256.
The budget counts them by the sizes the records name, only for what the store has, before anything is read. A file that does not fit the budget on its own is served alone. A file a removal deletes while the route reads is served as its skeleton. A store that cannot be read gives a 500, never an answer that keeps nothing.
- **The page** shows a small note in its header, "N files removed by retention". Its title says that only a receiver that accepted the files still has their text. It sits in the header row, so the conversation keeps its height. The loader hands the kept bytes to the renderer, and asks again for whatever an answer left out.
- **The renderer** (Horizon #192):
- Its prompt store holds skeletons.
- It takes a piece by the SHA-256 that a removed or too-large part keeps, from the record that landed first.
- It says when a body was removed, is built from a removed one, or holds a piece too large to store.
- **Skeletons** keep an empty segment list for a body whose segments were all literal, so the renderer judges the skeleton as it judged the body.
`.sk` files and the store under `provider/` stay local. They are never sent, so nothing changes on the OAP.
### Tests
- `tests/chain`:
- Every body landed after a removal rebuilds from the route's answer alone. This test also writes Horizon's fixtures.
- The budget serves every file, and a file deleted while the route reads is served as its skeleton.
- `internal/view`:
- Kept bytes are counted once, only for what the store has, and a store error is an error.
- The page's helpers run under node: the note, kept bytes as typed arrays, a record id `__proto__`, and asking again for left-out files.
- `internal/storage`: lookup failures of the store.
- `pkg/skeleton`: a literal-only manifest keeps an empty list.
Each guard was proven by reverting it. `make check` (license headers aside, see below), `make scenarios` and `make conversation-view-check` pass. The license check flags only my local Claude Code lock file, `.claude/scheduled_tasks.lock`, which git ignores, so CI does not see it.
### Review
GPT-6 reviewed both repositories over four rounds, with one round on the UI alone. Every finding is fixed and confirmed. For a host that serves no skeleton, the old and new renderer drew 641 identical DOM snapshots.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Show a conversation after a removal on the page, and draw the bodies landed after it [skywalking-ai-sessionizer]
Posted by "wu-sheng (via GitHub)" <gi...@apache.org>.
wu-sheng merged PR #67:
URL: https://github.com/apache/skywalking-ai-sessionizer/pull/67
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org