fix: repair session detail history and source links - #33
Closed
ZeroPointSix wants to merge 2 commits into
Closed
Conversation
Owner
Author
Context fact card(三审)Target
Verified facts
Relevant code and tests
CI/CD and validation entrypoints
Assumptions not allowed
Risks / blockers
Proposed change scope
Execution summaryProblem
Root cause / verified facts
Solution
Files changed
Validation
CI/CD
Remaining risks / follow-ups
三审结论:代码层面建议合并 / 无新增 blocker;合并前请 maintainer 明确接受 Review Contract 中的 bounded-history residual risk。 |
4 tasks
This was referenced Aug 12, 2026
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
exitedis displayed as已完成and is not counted as a failure.Closes ZER-669.
Discord Discussion URL: Not available; the implementation scope is tracked in Linear ticket ZER-669 and this PR's review thread.
Review Contract
Goal
Ensure an administrator who opens a session detail page can recover the available history, accurately return to the originating Slack or Discord conversation, and see one consistent status vocabulary across details, filters, lists, and overview metrics.
Non-goals
This PR does not introduce durable, cross-restart event archival; redesign Discord thread creation; alter session lifecycle semantics; or reconcile the unrelated overlapping changes in PR #32.
Accepted Residual Risks
The in-memory
SessionEventBusretains a bounded history (default 1,000 events). A fresh page can therefore replay only the retained suffix after an overflow, while the UI renders its latest 60 timeline entries. Operators can reload and inspect the latest session snapshot, but full historical recovery requires a future durable event store. This trade-off requires maintainer approval before merge.Acceptance Criteria
idleandexitedare displayed as等待中and已完成everywhere users can select or view a status; onlyerrorincrements the failure metric.Follow-ups
Add durable event retention with explicit overflow visibility, and rebase or regenerate the overlapping web assets in PR #32 after this PR merges.
Validation
pnpm --dir web lintpnpm --dir web testpnpm --dir web buildcargo test -p openab-core --no-default-features --features discord,slack 'discord::tests::session_permalink'git diff --check