Skip to content

Feat/intake#60

Merged
stewartshea merged 8 commits intomainfrom
feat/intake
Mar 18, 2026
Merged

Feat/intake#60
stewartshea merged 8 commits intomainfrom
feat/intake

Conversation

@stewartshea
Copy link
Copy Markdown
Contributor

@stewartshea stewartshea commented Mar 17, 2026

  • Introduced view mode and sort order state management, allowing users to toggle between 'grouped' and 'presentation' views and sort tasks by 'alpha', 'diverse', or 'codebundle'.
  • Updated URL parameters to sync with the selected view and sort options, improving user experience and navigation.
  • Refactored task filtering and sorting logic to accommodate new features, ensuring efficient task display based on user preferences.
  • Enhanced the UI to include a header with view toggle options, improving accessibility and usability for task browsing.

Note

Medium Risk
Adds new API endpoints and GitHub issue-creation auth paths (GitHub App tokens + PAT fallback) across backend and MCP server; mistakes could break issue creation or leak misconfigured auth. UI changes are mostly additive but touch navigation and task browsing behavior/URLs.

Overview
Adds a new CodeBundle intake wizard end-to-end: a backend intake router (/api/v1/intake) that searches for existing coverage via MCP and submits a structured GitHub issue to a configurable target repo, plus a new /intake frontend page wired from Chat and the header.

Refactors GitHub issue creation to support GitHub App authentication (short-lived installation tokens) with PAT fallback, used by both the backend (github_issues router) and the MCP server tool; updates env/config docs and k8s secrets to supply optional github-credentials.

Updates task browsing UX with new grouped vs presentation modes, sorting options, URL param syncing (support_tags, view, sort), and minor theme/branding alignment (Inter font, updated design tokens/colors, meta/OG tags, and dev docker host-check settings).

Written by Cursor Bugbot for commit b5a49c9. This will update automatically on new commits. Configure here.

- Included the Intake Wizard route in the frontend application, allowing users to access the new feature via the `/intake` path.
- Updated the Header component to include a navigation button for the Intake Wizard.
- Implemented the Intake API in the services, defining interfaces and methods for platform retrieval, search functionality, and submission of design specifications.
- Enhanced the backend by integrating the Intake router, ensuring the new functionality is accessible through the API.
- Updated the SubmitRequest model to include title, description, and additional context for improved intake submissions.
- Enhanced the submit_intake function to generate GitHub issues with minimal required fields and include search results for better context.
- Introduced a new chat feature in the Header component, allowing users to access the Registry Chat easily.
- Simplified the IntakeWizard component by removing unnecessary steps and integrating direct navigation from the chat to the intake process.
- Refactored the API service to accommodate the new submission structure, ensuring seamless communication with the backend.
- Replaced the SmartToy icon with ChatBubbleOutline for better representation of the chat feature.
- Refactored the chat access point in the Header component from an IconButton to a Button with a tooltip, improving usability and accessibility.
- Adjusted styling for the chat button to enhance visibility and user experience when navigating to the chat interface.
- Updated Taskfile to source secrets from az.secret for Docker commands, ensuring secure access to sensitive information.
- Added GitHub App authentication parameters in the configuration, allowing for improved security and flexibility in GitHub interactions.
- Refactored GitHub issue creation logic to utilize the new GitHub App authentication method, enhancing integration reliability.
- Updated the intake router to use the new GitHub intake repository setting, streamlining issue submissions for the intake process.
- Introduced a token manager for GitHub App JWT and installation token lifecycle management, improving authentication handling.
- Aligned theme colors with RunWhen documentation, updating primary and secondary colors across components.
- Changed font family from Raleway to Inter for a unified design approach.
- Enhanced the theme configuration to reflect new color values and improved styling for various UI elements.
- Updated the Home and Header components to reflect the new branding and color scheme.
- Added Open Graph metadata to improve social media sharing and visibility.

- Addresses RW-316
- Introduced view mode and sort order state management, allowing users to toggle between 'grouped' and 'presentation' views and sort tasks by 'alpha', 'diverse', or 'codebundle'.
- Updated URL parameters to sync with the selected view and sort options, improving user experience and navigation.
- Refactored task filtering and sorting logic to accommodate new features, ensuring efficient task display based on user preferences.
- Enhanced the UI to include a header with view toggle options, improving accessibility and usability for task browsing.
@github-actions
Copy link
Copy Markdown

Container Images Built

Tag: feat-intake60-merge-628b83aa
Build: ✅ All images pushed
Test Deploy: ✅ Triggered

Image Tag
cc-registry-v2-backend feat-intake60-merge-628b83aa
cc-registry-v2-frontend feat-intake60-merge-628b83aa
cc-registry-v2-worker feat-intake60-merge-628b83aa
runwhen-mcp-server feat-intake60-merge-628b83aa

Comment thread cc-registry-v2/backend/app/routers/intake.py Outdated
Comment thread mcp-server/tools/github_issue.py
Comment thread cc-registry-v2/frontend/src/pages/AllTasks.tsx
Comment thread cc-registry-v2/Taskfile.yml Outdated
Comment thread cc-registry-v2/backend/app/routers/intake.py Outdated
Comment thread cc-registry-v2/backend/app/routers/intake.py
- Updated README.md to include detailed instructions for GitHub App and Personal Access Token usage for issue creation, improving clarity on authentication requirements.
- Refactored Taskfile.yml to source secrets from az.secret using the dot operator for improved compatibility and security.
- Enhanced error handling in the intake submission process to log unexpected errors, ensuring better debugging and reliability.
- Updated frontend components to utilize support tags for task filtering, improving user experience and navigation.
- Added active filters display in AllTasks component, allowing users to easily manage and clear selected filters.
@github-actions
Copy link
Copy Markdown

Container Images Built

Tag: feat-intake60-merge-08c07883
Build: ✅ All images pushed
Test Deploy: ✅ Triggered

Image Tag
cc-registry-v2-backend feat-intake60-merge-08c07883
cc-registry-v2-frontend feat-intake60-merge-08c07883
cc-registry-v2-worker feat-intake60-merge-08c07883
runwhen-mcp-server feat-intake60-merge-08c07883

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread cc-registry-v2/backend/app/routers/intake.py Outdated
matches = parsed

# Check for open requests
search_term = req.platform or req.description.split()[0] if req.description else ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Operator precedence causes wrong search_term when description empty

Medium Severity

Due to Python operator precedence, the expression req.platform or req.description.split()[0] if req.description else "" is parsed as (req.platform or req.description.split()[0]) if req.description else "". When req.description is an empty string but req.platform is set, search_term becomes "" instead of the platform value, causing the existing-requests check to be skipped entirely. Parentheses are needed around the ternary to get the intended behavior.

Fix in Cursor Fix in Web

- Updated GitHubAuth class to improve logging of authentication parameters, providing clearer insights into configuration status.
- Refactored intake coverage search logic to simplify result parsing, enhancing readability and maintainability.
- Added optional GitHub credentials secret reference in Kubernetes deployment configurations for improved security management.
- Updated secrets example to reflect the new structure for GitHub credentials, ensuring clarity on authentication methods.
@github-actions
Copy link
Copy Markdown

Container Images Built

Tag: feat-intake60-merge-4a83bf13
Build: ✅ All images pushed
Test Deploy: ✅ Triggered

Image Tag
cc-registry-v2-backend feat-intake60-merge-4a83bf13
cc-registry-v2-frontend feat-intake60-merge-4a83bf13
cc-registry-v2-worker feat-intake60-merge-4a83bf13
runwhen-mcp-server feat-intake60-merge-4a83bf13

@stewartshea stewartshea merged commit bb0038d into main Mar 18, 2026
8 checks passed
@stewartshea stewartshea deleted the feat/intake branch March 18, 2026 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant