Repository navigation
Build Helper: full feature parity with the legacy tool - #2
Merged
Merged
Conversation
Port every JigsawTools build-helper feature into the platform-kit architecture (server → routes → lib, ≤150-line files, barrels, zero deps, no-auth). Excludes auth/enterprise pieces (login/pair/license, company vault, agent auto-update) per the no-auth + local-only invariants. Backend - routes/testflight.js: /api/testflight/manage + /latest - lib/qr.js + /api/qr: same-origin QR proxy for the share canvas - /api/tracker/tasks + /api/jira/search (Jira picker) - /api/doctor/full: live `flutter doctor -v` - /api/security/grades: best-effort grades from mobile-security - lib/schedule.js: 1-min scheduler for unattended per-app builds - lib/selfupdate.js + routes/tool.js: /api/version, /changelog/tool, /self-update - onedrive.js: shared team-folder mode (/api/setup/onedrive-shared) Frontend (14 new ≤150-line modules) - charts, health-table, dashboard: SVG charts + filters + sortable/ draggable health table + security grade + ⌘K + guided tour - build-form, notes, build-run: env pipeline, M/m/p bump, per-env outputs matrix + track, release-notes fill + Jira picker, branch, Advanced menu, nav-surviving live log, inline guard prompts - history, detail: bulk re-upload, build detail (re-upload/TestFlight/rollback) - share, share-actions: canvas build card + QR, copy/email/Jira release - app-setup(+more): per-app modal (custom envs, accounts, build defaults, scheduled builds, trackers, groups) - self-update nav button Docs + README updated. check-lines clean; --selftest asserts all new routes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The earlier port replicated the features/logic but rebuilt the frontend in a flat, generic style. This reworks the presentation layer to mirror the source JigsawTools build-helper pixel-for-pixel, reusing the design system already in platform-kit/kit.css (which is a superset of the source's app.css) — so almost no CSS was added, only faithful markup. Frontend (source-verbatim markup, kit nav kept) - bh-ui.js: pipeline builder, env/station colors, 4 missing icon glyphs merged into kit ICON, brand logos (firebase/apple/play), CONNECT map, $/tooltip, no-auth capability stubs. - Dashboard (dashboard.js + health-table.js + charts.js): Release-console header, range/project/env filters, KPI cards, 2x2 SVG charts + security posture, and the project-health table with real app icons (/api/icon), drag reorder, ★ favorites, density, per-row security grade, Storage + Activity rail. - Build page (project.js + build-form.js + build-wire.js + build-run.js): header (icon + Current + TestFlight), sticky DEV→PROD pipeline stations, colored left-border env cards, M/m/p bump, notes fills + Jira picker, big outputs cards with "connect it" warnings, macOS traffic-light live log (poll-based, survives nav), build summary, history + bulk actions. - App Setup (app-setup.js + app-setup-more.js): one tall modal — release readiness, env override, environments editor, Firebase/Apple/Play, build defaults, Android signing, build commands, scheduled builds, issue-tracker grid with brand logos, client groups, sticky save. - Share (share-card.js + share.js + share-actions.js): canvas build card with QR + platform badges, download/copy, team/client text, email groups, Jira release, re-upload. Detail + analytics (detail.js) ported to source markup. - index.html: station CSS + tooltip, new script modules; deleted dead notes.js. Backend (small additions for the ported UI) - /api/artifacts + /api/artifact/delete (build-page browser) - /api/jira/meta, /api/jira/create-release, /api/jira/create-issue (share modal) - /api/log (raw build log); /api/qr accepts data= ; dashboard rows carry hasIcon - scheduler matches the source schedule shape (enabled/days/dest, once per day) Verified headless (Chrome): dashboard, build page, and App Setup render matching the source screenshots; no console errors. check-lines clean; --selftest 83 routes. Co-Authored-By: Claude Opus 4.8 (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 every JigsawTools build-helper feature into the platform-kit architecture (server → routes → lib, ≤150-line files, barrels, zero deps, no-auth). Excludes auth/enterprise pieces (login/pair/license gates, company vault, agent auto-update) per the no-auth + local-only invariants.
Backend
routes/testflight.js—/api/testflight/manage+/latestlib/qr.js+/api/qr— same-origin QR proxy for the share canvas/api/tracker/tasks+/api/jira/search— Jira task picker/api/doctor/full— liveflutter doctor -v/api/security/grades— best-effort grades from mobile-securitylib/schedule.js— 1-min scheduler for unattended per-app buildslib/selfupdate.js+routes/tool.js—/api/version,/changelog/tool,/self-updateonedrive.js— shared team-folder mode (/api/setup/onedrive-shared)Frontend (14 new ≤150-line modules)
Notes / deliberate simplifications
Verification
node scripts/check-lines.jsclean;node build-helper/server.js --selftestpasses (77 routes; asserts every new route registered).index.htmlscript tags match files on disk.🤖 Generated with Claude Code