Fix credential, import, upload retry, and offline failures found in local testing - #101
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (22)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_ce834aa5-9c7b-48fd-9ffb-1b3ac1caeab4) |
|
Independent pre-merge verification: PASS+NOTES for An independent Codex agent that did not author these changes reviewed the exact 23-file diff and ran 44 focused tests: 30 server and 14 web. The checks cover PAT validation/clearing, connector-specific Spoolman deductions, failed upload retention and cleanup, ZIP retry, imported Build selection/navigation and dialog dismissal. Exact source inspection verified corrected offline wording and cache v4. No merge blocker was found. Limits: tests ran on integrated head |
Six defects surfaced while running the current pending PR stack locally. This fixes GitHub token clearing/status, Spoolman connector ownership, failed queued-upload retry, Save-time ZIP retry, imported Build selection/dialog dismissal, and misleading offline-save promises.
Stacked on #100, which includes #99. The dependency versions from #93, #94, #96 and #97 are included and were tested together. The S3 bump in #95 is obsolete on this base because S3 support was removed.
Validation: full
VITEST_MAX_WORKERS=2 TMPDIR=/private/tmp TZ=UTC npm run qualitypassed, including 3,712 unit/integration tests, production build, bundle/runtime checks and seven browser scripts. The later dialog change passed 15 focused tests and a real GitHub sync/export/map/import/reload browser run. The offline copy passed eight focused checks, a web build/typecheck, and before/after browser close/reopen checks. Local HTTP verification covered 30 authentication, settings, simulated connector, backup/restore, API-key and MCP checks. Each fix has before/after regression evidence.The default-concurrency suite twice exceeded the existing 60-second timeout for the 10,000-unit STL stress test. The unchanged test passed alone and in the complete two-worker suite. No assertions or timeouts were relaxed.
Tracks GRE-304, GRE-305, GRE-306, GRE-307, GRE-308 and GRE-309. GRE-286 was separately reproduced during the final Production walkthrough and is being fixed in a follow-up. CodeRabbit CLI was signed out, so no CodeRabbit review is claimed. No physical print, deployment or remote merge is claimed.
Note
Medium Risk
Touches credential persistence, filesystem cleanup with path guards, and Spoolman API routing where wrong behavior could leak tokens, delete wrong files, or post deductions to the wrong instance; changes are covered by new integration tests.
Overview
Fixes several issues found in local testing across settings, printer queue, Spoolman, sharing, sources, and PWA messaging.
GitHub PAT —
PUT /settings/github-patnow requires a stringtoken(400 otherwise), trims it, and persists empty string to clear the stored PAT. Responses still avoid leaking the secret; Settings UI shows configured status with a default mask.Printer send queue / uploads — Failed queued uploads keep staged G-code under tenant exports so dispatch can retry; artifacts are removed after success, after cancel (with
assertPrinterUploadArtifactPathso paths outside exports are not deleted), and still cleaned for direct upload jobs. Cancel during an active send remains 409.Spoolman after verify — Filament deductions call the Spoolman connector encoded in each spool reference, skipping disabled, wrong-type, or missing integrations instead of always using the newest Spoolman connector.
Reference share import — After a successful import, the app reloads the Build list, selects the new profile, navigates to Plan, and closes the share dialog when import runs inside it; a failed list refresh keeps the new selection and shows a toast. Failed imports leave mapping and dialog state intact.
Zip source wizard — New sources can pick the ZIP on first Save; retries reuse the same source and archive without re-creating the source.
Offline / install copy — Service worker bumps to v4 with updated offline page and install banner text: connection is required for Checkoff and saved changes, not implied offline queuing.
Minor dependency bumps (
@fastify/multipart, TanStack Query, three, typescript-eslint) and broad regression tests accompany the behavior changes.Reviewed by Cursor Bugbot for commit e3d5bd6. Bugbot is set up for automated code reviews on this repo. Configure here.