feat(raycast): scaffold Gittensory Raycast extension#356
Open
kiannidev wants to merge 2 commits into
Open
Conversation
Add a Raycast package with GitHub Device Flow auth against the Gittensory API, local gts_ session storage, login/status/logout commands, and CI coverage. Fixes JSONbored#113
24 tasks
JSONbored
requested changes
Jun 5, 2026
Owner
JSONbored
left a comment
There was a problem hiding this comment.
@kiannidev the scaffold direction is reasonable, but Raycast still needs product evidence.
A few notes:
- Device Flow auth with
gts_session storage is the right boundary. - The PR adds visible Login/Status/Logout commands.
- “No web UI screenshots apply” is not enough here; Raycast itself is the visible UI surface.
Required changes:
- Add screenshots Login, Status, and Logout states. (follow the raycast extension docs for exactly how screenshots should be sized/formatted/taken, as their instructions are very specific). Failure to do this will result in rejection of our Raycast extension PR submission, so this is very important.
- Keep the evidence organized in the PR description.
- Confirm no GitHub PAT storage and no secret/session output appears in command UI or logs.
Validation expected:
- Rerun the Raycast package build/tests and the root validation gates affected by the new package scripts.
This was referenced Jun 5, 2026
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.
Add a Raycast package with GitHub Device Flow auth against the Gittensory API, local gts_ session storage, login/status/logout commands, and CI coverage.
Fixes #113
Summary
packages/gittensory-raycast— Raycast extension scaffold with Login, Status, and Logout commands.POST /v1/auth/github/device/start,POST /v1/auth/github/device/poll,GET /v1/auth/session,POST /v1/auth/logout); persists onlygts_session tokens in RaycastLocalStorage(GitHub PATs rejected at validation).https://gittensory-api.aethereal.dev).lib/holds API client, auth polling, storage helpers, and public-output sanitizer (unit-tested, no Raycast UI imports);src/wires Raycast commands.build:raycastandtest:raycast(build, lint, package tests with coverage) wired intonpm run test:ci.Scope
CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
Verified locally with
npm run test:cion Node v24.15.0 (repo requires Node >= 22 per.nvmrc).git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally; global coverage stays at or above 97% for lines, statements, functions, and branches (aim for 98%+ branch coverage locally so CI variance does not fail near the threshold)npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run test:raycast(new; included intest:ci)npm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
Root coverage (
npm run test:coverage): unchanged global thresholds (lines/statements/functions/branches ≥ 97%). Raycast package (npm --workspace @jsonbored/gittensory-raycast run test): lines 100%, statements 97.9%, branches 96.6%, functions 90.9% onlib/(package-local thresholds; not merged into rootsrc/coverage).New tests:
packages/gittensory-raycast/test/{auth,api,config,storage,sanitize,package-boundaries,sanitize-coverage}.test.ts— auth success/failure/expiry mocks, no PAT storage, no source-upload API paths, forbidden public language sanitizer, token non-leakage on errors.Safety
Notes
packages/gittensory-mcp/bin/gittensory-mcp.js).packages/gittensory-raycast/README.md.cd packages/gittensory-raycast && npm install && npm run build, then Raycast → Import Extension → this directory.