feat: add workflow slash triggers - #280
Merged
willchen96 merged 5 commits intoAug 3, 2026
Merged
Conversation
Collaborator
|
Thanks useful feature - could you add some screenshots of the UI once done? |
Contributor
Author
zenzen-sol
marked this pull request as ready for review
August 3, 2026 00:21
Collaborator
|
Updated the slash-command implementation in commit What changed:
Why:
Validation: backend tests (276 passed), frontend tests (53 passed), backend build, frontend TypeScript, and frontend ESLint all pass. |
willchen96
approved these changes
Aug 3, 2026
willchen96
left a comment
Collaborator
There was a problem hiding this comment.
lgtm - made some additional refinements
Collaborator
|
Thanks for the contribution. let me know if you would like to join the contributors' discord! |
Contributor
Author
Thank you! I've got a few ideas for PRs, so I would definitely like to join the Discord. |
willchen96
pushed a commit
that referenced
this pull request
Aug 3, 2026
…with lib tests WHY THIS MATTERS Main's "Frontend build and tests" job has been red for everyone: statements 52.14% vs the 54% floor and branches 62.57% vs 73%. A coverage ratchet only works if regressions are paid down with tests — if we lower the floor instead, the ratchet becomes a decoration and every future untested merge quietly erodes the suite. This commit restores green by testing the code that caused the drop, then re-arms the ratchet at the new level. WHAT HAPPENED The ratchet floors were measured in #255 (2266446) before three merges landed untested code inside the gated scope (src/app/lib/**): - #263 (db-pagination) + #274 (folder-grouped tabular reviews) grew mikeApi.ts's listTabularReviews/listTabularReviewIds into query-string builders with seven conditional params each, added the document_grouping field, the uploadReviewDocument orchestration, and the tabular chat/cell endpoints — nearly all unexercised. Lines 1044-1456 were the bulk of the uncovered report. - #280 (workflow slash triggers) leans on the workflow endpoints (listWorkflows feeds the slash menu), which were also untested. Because coverage is a global percentage over the gated files, adding untested statements/branches anywhere in scope dilutes the totals even though no tested line got worse. HOW THE FIX WORKS Extend the existing mikeApi.test.ts fetch/session mocking pattern to the regressed surface, asserting behavior (URLs, methods, exact payloads, error contracts), not just execution: - listTabularReviews/listTabularReviewIds: every pagination knob serialized under its snake_case name, scope="all" omitted (backend default), abort signals forwarded, and the ids query scoped identically to the list query — the invariant that keeps select-all-then-delete from deleting reviews the user cannot see. - createTabularReview/updateTabularReview: document_grouping (the #274 field) passes through unchanged; PATCH sends only the given fields. - uploadReviewDocument: project vs standalone upload routing, and that the follow-up PATCH appends to existing document_ids instead of replacing them (the review-shrinking failure mode). - Multipart uploads: FormData with auth header only (a manual JSON content type would break the boundary), optional filename field, and the plain-Error-with-response-text failure contract. - Tabular chats/cells, workflow list/hide/unhide, query and payload defaults (getDocumentUrl version param, createChat "{}" body, parent_folder_id null-vs-undefined, empty error bodies). - supabase.ts: importing without env vars fails loudly at module load — the desired crash-at-startup behavior for a misconfigured build. - deleteTabularReviewsWithConcurrency: empty input short-circuits; concurrency<=0 clamps to one worker instead of silently deleting nothing. - utils.diceCoefficient: sub-bigram inputs score 0. Coverage moves from 52.14/62.57/34.67/52.41 (stmts/branch/funcs/lines) to 81.18/98.24/55.64/79.18. Per the ratchet's own rule ("floors only go up: when you add tests, raise them in the same PR"), the floors move to 79/96/53/77 — about two points under the new measurement, so one small innocent addition doesn't instantly re-redden main, while a real drop still fails CI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
metadata.mike-slash-triggerfield for assistant workflowSKILL.mdfrontmatterProtocol
Triggers must begin with
/and contain only lowercase letters, numbers, and hyphens.Validation
npm testinfrontend: 52 tests passednpm testinbackend: 276 tests passed, 14 skippednpm run buildinbackendnpx next build --webpackinfrontendnpm run lintinfrontend: 0 errors