Move the bulk actions under the telemetry cards; pending only - #87
Merged
Merged
Conversation
Four changes, all as specified:
* PENDING ONLY, both directions. Export and import now refuse anything else --
`reviewed` and `suggested` claim a human has judged the text, `pushed` claims it
is already live in Foundry, `excluded` claims it is out of scope. Landing new
prose under any of those makes the claim false while leaving it on the page.
Row checkboxes are disabled again on non-pending rows, so the restriction is
visible before the click rather than reported after it.
* The three actions moved OUT of the selection bar and under the telemetry cards,
above the filter row so narrowing the list does not move them. Sync transcripts
stays top-right.
* ALWAYS VISIBLE; only availability moves. The row used to appear once something
was selected, which meant the two selection actions did not exist until after the
gesture that needs them -- nothing on the page said a selection would lead
anywhere. A permanently-present disabled button states the affordance.
* Clear selection removed. The header checkbox is the clear-all -- and unchecking
it now clears EVERY box, not only the visible ones, or a row selected before a
filter was applied stays selected invisibly and the next export includes it.
Import warns before the file picker, not after the read: "Replaces the existing
Correction on every exchange the file matches." Cancelling costs nothing at that
point; cancelling after a write is not on offer. It uses the existing inline
confirm rather than a modal, so it cannot block.
Two consequences worth naming. The frontmatter needs-triage repair is gone from the
import path -- it existed to reconcile a `reviewed` file whose fields disagreed with
its body, and only pending transcripts reach that code now. And applyFilters() calls
ckSync(), because filtering changes what counts as selected: without it, narrowing
the list away from a selection left both buttons enabled against nothing.
Label note: the button reads "Mark selected reviewed", not "Mark selected". It marks
transcripts reviewed with NO change needed, and a label that omits the verb invites
the opposite reading on a bulk action.
Verified in Chrome: 3 buttons in the row and Sync still in the header; disabled ->
enabled -> disabled across select-one, select-all, clear-all; the hint reading
"Pending rows only" then "5 selected · as vijay-tylertech"; the warning appearing
inline, naming replacement, and restoring the button on Cancel; geometry showing
kpis -> actbar -> filter bar in order on one row; and every status refused by both
directions server-side with the files left byte-identical.
Claude-Session: https://claude.ai/code/session_01VVNYqGza2dFdeWFX7qXnwb
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.
Four changes, all as specified:
reviewedandsuggestedclaim a human has judged the text,pushedclaims itis already live in Foundry,
excludedclaims it is out of scope. Landing newprose under any of those makes the claim false while leaving it on the page.
Row checkboxes are disabled again on non-pending rows, so the restriction is
visible before the click rather than reported after it.
above the filter row so narrowing the list does not move them. Sync transcripts
stays top-right.
was selected, which meant the two selection actions did not exist until after the
gesture that needs them -- nothing on the page said a selection would lead
anywhere. A permanently-present disabled button states the affordance.
it now clears EVERY box, not only the visible ones, or a row selected before a
filter was applied stays selected invisibly and the next export includes it.
Import warns before the file picker, not after the read: "Replaces the existing
Correction on every exchange the file matches." Cancelling costs nothing at that
point; cancelling after a write is not on offer. It uses the existing inline
confirm rather than a modal, so it cannot block.
Two consequences worth naming. The frontmatter needs-triage repair is gone from the
import path -- it existed to reconcile a
reviewedfile whose fields disagreed withits body, and only pending transcripts reach that code now. And applyFilters() calls
ckSync(), because filtering changes what counts as selected: without it, narrowing
the list away from a selection left both buttons enabled against nothing.
Label note: the button reads "Mark selected reviewed", not "Mark selected". It marks
transcripts reviewed with NO change needed, and a label that omits the verb invites
the opposite reading on a bulk action.
Verified in Chrome: 3 buttons in the row and Sync still in the header; disabled ->
enabled -> disabled across select-one, select-all, clear-all; the hint reading
"Pending rows only" then "5 selected · as vijay-tylertech"; the warning appearing
inline, naming replacement, and restoring the button on Cancel; geometry showing
kpis -> actbar -> filter bar in order on one row; and every status refused by both
directions server-side with the files left byte-identical.
Claude-Session: https://claude.ai/code/session_01VVNYqGza2dFdeWFX7qXnwb