Skip to content

Move the bulk actions under the telemetry cards; pending only - #87

Merged
vijay-tylertech merged 1 commit into
mainfrom
fix/csv-buttons
Aug 29, 2026
Merged

vijay-tylertech merged 1 commit into
mainfrom
fix/csv-buttons

Conversation

@vijay-tylertech

Copy link
Copy Markdown
Contributor

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

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
@vijay-tylertech
vijay-tylertech requested a review from a team as a code owner August 29, 2026 22:25
@vijay-tylertech
vijay-tylertech merged commit d7a7312 into main Aug 29, 2026
1 check passed
@vijay-tylertech
vijay-tylertech deleted the fix/csv-buttons branch August 29, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant