Repository navigation
Brand Deals: port the deal board from glados - #15
Merged
Merged
Conversation
Straight port of the brand-deal surface — page, DealBoard, the bdpilot/gsend reader and its four API routes — plus the PipelineChart dependency the board imports and FounderOS did not have. Reads live host state (~/.config/bdpilot/state.json, the gsend binary) exactly as it does in glados; no seeded fallback, so the board is empty on a host without the daemon. Overrides persist to a new brand_deal_overrides table through the repo layer, Zod-validated on the way out like every other row. Registered in both smoke nets and the Operate nav group. Co-Authored-By: Claude Opus 5 (1M context) <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.
Ports the brand-deal surface from
brodyautomates/gladosinto FounderOS. Straight port — no behaviour invented, nothing dropped.What's here
New
app/brand-deals/page.tsx+components/brand-deals/DealBoard.tsx— the boardcomponents/PipelineChart.tsx— dependencyDealBoardimports; FounderOS didn't have itlib/brand-deals.ts— the bdpilot/gsend readerapp/api/brand-deals/{route,draft,override,send}— 2 GET, 3 POSTtests/brand-deals.test.ts+ 3 fixtures (fully synthetic,*.exampledomains)Edited
lib/schemas.ts—BrandDealOutcomeSchema,BrandDealOverrideSchemalib/db.ts—brand_deal_overridestable + repo, Zod-validated on the way out like every other rowlib/nav.ts— Operate group, after Funneltests/smoke.test.ts/tests/smoke-api.test.ts— registered so the coverage nets stay exhaustiveTwo things to know before merging
lib/brand-deals.tspulls~/.config/bdpilot/state.json,~/.config/bdpilot/bdpilot.log, and shells out to~/bin/gsend. On a host without the bdpilot daemon the board renders empty. This cuts against the repo's larp-first rule — every other view looks alive off seeds. Adding a seeded fallback is a follow-up if you want the demo to show something.POST /api/brand-deals/sendsends real email via the gsend binary where it exists. Worth a look before this goes anywhere shared.Paths are overridable via
BDPILOT_STATE,BDPILOT_LOG,BDPILOT_LIST_FILE,GSEND_BIN,GLADOS_SENDER_NAME.Verification
npm test— 984/984 pass (18 are the ported brand-deal tests)npm run typecheck— cleannpm run build— clean,/brand-dealsat 11.7 kB🤖 Generated with Claude Code