Claude/Add Build Checker + Build Status Display#22
Merged
Conversation
Introduce a build checker that flags data-quality issues with groups and insertables, classified as info/warning/error. Most checks run at build time in the load-document workflow and are stored in new `build_issues` columns; the "group has no unhidden insertables" check is computed live in the frontend since it depends on per-user visibility. Issues are surfaced through an inline build-status tag (next to the Hidden tag) with a read-only hover card that shows the item's current state (hidden, open composite, insert-and-fasten, parsed vendors) plus the build issues. The tag is visible to editors and admins only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYR5A6oY9L5eom9R5rXFqz
…l reload - Key build issues by a BuildIssueCode enum and model BuildIssue as a discriminated union so variants can carry custom data later. Severity and message are derived from a central BUILD_ISSUE_META map rather than stored. - Add addBuildIssue (dedupes by code) and clearBuildIssue helpers. - Clear the thumbnail-failed issue when a group/insertable thumbnail is successfully reloaded. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYR5A6oY9L5eom9R5rXFqz
- Drop the BUILD_ISSUE_META lookup map. Each build issue is a self-describing object in a BuildIssue[] array, discriminated by a BuildIssueType enum, with the union typed so specific issue types can carry extra data later. - Derive severity from the type via getIssueSeverity; render the human-readable message on the frontend (getIssueMessage in build-status.tsx) rather than storing it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYR5A6oY9L5eom9R5rXFqz
- Add a proper IssueIcon component (with a getSeverityMeta helper for color/label) in place of the getSeverityVisual icon-rendering pattern. - Render the inline build-status badge as a self-sizing icon-only badge (flexShrink: 0) so the flex CardTitle row no longer squishes or stretches it. - Size the hover card to its content (capped) and keep rows nowrap so short rows and messages no longer wrap. - Show boolean current-state values as a green check / gray cross instead of Yes/No text. - Show vendors as compact badges (abbreviation, full name on hover) instead of a comma-joined string that wrapped badly. State-row values are now structured data so the hooks file stays JSX-free. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYR5A6oY9L5eom9R5rXFqz
…rt row - Rename BuildIssueType members to ALL_CAPS and drop the explicit string values (nothing is persisted yet) to match the BuildIssueSeverity style. - Inline build-status-hooks.ts into build-status.tsx and delete it; it was only consumed there. - Render the Hidden indicator as a bare Tabler icon instead of a Mantine Badge, matching the icon-only build-status tag. - Change the group "current state" row to "Default sort order" showing "Alphabetical" or "Standard" (new text value kind). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYR5A6oY9L5eom9R5rXFqz
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.
This PR adds a new build-status component to the app. build-status allows admins to quickly see part information at-a-glance via a new hover bubble.
It also adds build checks to the app, which are computed at load time and allows us to flag potential issues with parts. To start with, we ensure every document has a thumbnail tab set, groups have at least one unhidden part, a thumbnail was generated.