Repository navigation
feat(hardware): let owners move design-stage hardware projects to Fabricate - #1611
Merged
Merged
Conversation
…ricate Owners of design-stage hardware projects that aren't waiting on any review get a green "Move to Fabricate" button beside Record a timelapse / Post a devlog. A confirmation popup (Fabricate's logo and type) explains the move and links Fabricate's overview docs. Confirming sends the project, the owner's name and bio and the devlogs they posted to Fabricate's /imports/stardance, signed with FABRICATE_IMPORT_SECRET, records a Project::FabricateTransfer and sends the owner to the new Fabricate project. Moved projects stay on Stardance but can't request funding, change stage, ship, or have a funding review undone back into the queue, so one design can't be funded by both programs. Only Hack Club-linked owners can move a project, since Fabricate trusts the email it is sent. The project actions row now wraps instead of pushing the last button off the edge, and a locked design-stage project's stage toggle highlights Design rather than always Build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbGbYWLS3Kapvu7Ny5YaKr
…them Stardance no longer calls Fabricate or holds a shared secret. Confirming "Move to Fabricate" now just records the Project::FabricateTransfer (which locks the project here, as before) and sends the owner to Fabricate's /imports/stardance/:id. Fabricate signs them in with Hack Club and reads the project and their devlogs from our public API, importing it only when the project reports a transfer whose owner Slack ID matches theirs. - Project API gains fabricate_transfer (null until moved; then moved_at and the owner's id, slack_id, display_name and bio), devlog API gains author_id, both preloaded and documented in openapi.yaml. - Moving needs an ID-verified owner, since the public API only shows devlogs by verified authors. - Drops FabricateService and the fabricate_project_id column (the migration hasn't shipped, so it's edited in place). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbGbYWLS3Kapvu7Ny5YaKr
destroyer796
marked this pull request as ready for review
November 9, 2026 19:30
…m moving to Fabricate An undone review can put a project Stardance already funded or shipped back in the design stage; production has 56 such projects that showed the button. They can no longer move. Hardware projects attached to a software mission (about 350 in production) can't either, since that mission's prizes don't carry over. Hackpad, BLARE and other hardware-mission projects still can. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbGbYWLS3Kapvu7Ny5YaKr
qcoral
requested changes
Nov 10, 2026
qcoral
left a comment
Member
There was a problem hiding this comment.
please remove the tests! they should either be hand-written or not included in the PR
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbGbYWLS3Kapvu7Ny5YaKr
Keeps both conditions where hackclub#1615 closed funding after Stardance ended and this branch hides funding on projects moved to Fabricate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbGbYWLS3Kapvu7Ny5YaKr
Contributor
Author
|
My bad, should be removed now |
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.
what's this do?
Lets owners move a design-stage hardware project over to Fabricate, Hack Club's newest hardware program. It only works while nothing about the project is waiting on (or blocked by) a Stardance reviewer.
Project::FabricateTransferand sends the owner tofabricate.hackclub.com/imports/stardance/:id. Stardance never calls Fabricate and needs no secrets or config.public/openapi.yaml, with nothing extra fetched per item):fabricate_transfer. It'snulluntil the project moves; after that it holdsmoved_atand the owner'sid,slack_id,display_nameandbio.author_id.Before deploy: this adds one migration,
project_fabricate_transfers(project, user). The Fabricate side is already live (hackclub/fabricate@327e511, deployed to fabricate.hackclub.com with its Stardance API key set), so this can ship whenever it's reviewed.show it works
Tested end to end against a local Fabricate, for both a person new to Fabricate and one with an existing account. Moving a project redirects to
/imports/stardance/:id, and Fabricate asks for Hack Club sign-in. Once signed in as the owner, the project is imported with its banner and devlogs (images copied over). For someone new to Fabricate, it also takes their Stardance name and bio. The Stardance project then shows "View on Fabricate" with the funding button gone.Rubocop and erb_lint are clean on the changed files.
ai?
Claude code