Repository navigation
Clearer projects and Sessions: archive consequences, failure reasons, how to call - #158
Merged
Merged
Conversation
The Keys heading on a project's page counted revoked keys together with
active ones ("Keys 4" beside "Active keys 3" in the list). It now reads
"3 active · 1 revoked", leaving out the revoked part at zero.
Archiving can't be undone: the contract has no unarchive. The dialog now says so, counts the active keys it revokes from the project read, and says assets and accepted work stay. A project with active keys is archived only after its name is typed, as a whole Skill is deleted.
The reason Core sent for a failed Session sat in a help tip beside its status. It now shows under the status: in full on the Session page, on one truncated line with the full text in its tooltip in the Session log. The history adds "Jump to the failed Turn", which shows the conversation (the Turn table without Items), scrolls the page body to the next failed Turn and focuses it.
The how-to-call samples also create a Session with a first message, in the official shape of POST /agents/sessions with the pinned SDK, and say what to put in place of <model>. An active project's page shows the same samples as a section without any key: the export holds a placeholder and a note says to use a key issued for the project. Getting started's last step opens the newest active project, preferring one with a key, with that section's heading focused.
In the By Agent table a saved Agent's name opens its page, and a nonzero Failed figure opens the Session log with the Agent's ID in the search (the link the Agent page already uses) and the Failed filter, set by an in-memory intent rather than a new URL parameter.
Update the design context (DESIGN.md, PRODUCT.md) and the protocol coverage lines these changes made stale: the how-to-call samples on a project's page with the Session request, the project list's use by Getting started and the archive confirmation, and api_base_url's uses.
The By Agent Failed figure counts failed Turns, while its link opens the Agent's failed Sessions. The link's accessible name and tooltip now say "Open <Agent>'s failed Sessions", and the column's help tip says the figure counts failed Turns and the link lists failed Sessions.
Open System scrolled the Default model section with scrollIntoView, which also scrolled the page, whose overflow is hidden, and pushed its header out of sight. It now uses revealInPageBody, which scrolls only the page body and can focus another element than the one it reveals. The Getting started acceptance test checks the header stays in view for steps 2 and 4.
The archive dialog trusted the project read's active_key_count, which is stale after a key is issued while the project list can't be read again: it said there were no active keys and archived without the typed name. It now counts the higher of that and the project's loaded key list, and Archive waits while the project list is read again; after a failed read a red line says the count may be out of date and Archive stays disabled. The name to type shows in mono with its inner spaces kept, and the typed name matches after trimming, with both sides compared in NFC.
The one-line reason set the status column's minimum width, so the log scrolled sideways at 1280px. It is now clamped to one line and may break anywhere, so it only uses width the table has spare, up to 220px. On the Session page the full reason keeps its line breaks.
Getting started's last step scrolled to the How to call heading as soon as the project was known, before the keys and usage above it had drawn, which then pushed the heading out of view. The intent now waits for the project's keys, its summary and the installation to settle. The acceptance test gives the project a dozen keys read afresh and checks that the heading is in view once they have drawn.
The By Agent Failed figure counts failed Turns in the range, but its link
listed Sessions whose latest Turn failed, at any time, so it was often
empty. It now opens the Session log on that project with the log's own
Agent filter and every status. Its accessible name and tooltip give the
count ("3 failed Turns — open <Agent>'s Sessions"), and the column's help
tip says what the figure and the link are.
zh-CN has no plural forms, so the jump read "跳到失败的 Turn(1 个)" for one failed Turn. The label is chosen in code: the count shows only when more than one Turn failed.
SaladDay
force-pushed
the
codex/web-ux-projects
branch
from
September 26, 2026 06:25
cdab2cd to
7017c3f
Compare
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.
UX quick wins for Projects, Sessions and Agent metrics, from the Web UX review (
~/.parsar/plans/new-user-install-20260925/03-web-ux-review.md).active_key_count), and that assets and accepted work stay.POST /v1/agents/sessions, official shape, checked against SDK 3.13.0).revealInPageBodyscrolls only the page body, so the header stays in view.DefaultModelsSection).Tests
docs/web (for the backend session's review)
docs/web/protocol-coverage.md:21(samples on the project page;POST /v1/agents/sessions),:33(step 4 target;active_key_countin the archive dialog),:120(api_base_urlon the project page).Need help on this PR? Tag
@codesmithwith what you need. Autofix is disabled.