[AI] What to change: The support landing page for a specific project (<https://app...#145
Open
burkongla wants to merge 8 commits into
Open
Conversation
added 2 commits
May 27, 2026 14:56
https://app... Task: 600143e7 Source: slack Requested by: U04E9DZ5ELF
✅ Deploy Preview for githelp-support ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
added 6 commits
May 27, 2026 20:52
…c/non-scrollable, and apply admin color to header container instead of top banner area Requested via Slack thread
…xt and make the left sidebar static (non-scrollable) with bottom content fitting within the viewport. Requested via Slack thread
…ng page changes (branded banner, custom sidebar with Incognito user, and Get support page formatting) which were not actually applied. Requested via Slack thread
…pacer, add grey stroke to header dp icon, and apply admin color to header container instead of separate banner Requested via Slack thread
…tructure sidebar layout so only the message thread (and optionally right sidebar) scrolls, not the left sidebar. Requested via Slack thread
…ding page Requested via Slack thread
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.
Automated PR
Task: What to change: The support landing page for a specific project (<https://app...
Description: What to change: The support landing page for a specific project (https://app.githelp.app/support/project_name)
Description and specific values:
• Apply a top banner color that corresponds with the color set under Settings/Branding from the Admin role, for the specific project.
• Make the horizontal top banner 61 px high.
• Apply a left sidebar with a formatting identical to the sidebar seen when logged in as a User. But with the following modifications:
◦ “Get support” is the default chosen, top navigation option in the left sidebar menu.
◦ Then, “Rates and details”, “Resources”, and “About support”.
◦ All other content an options within the left sidebar menu can be removed. Only keep the collapse option/interaction. And keep the bottom part showing the User. As the person will not be logged in, show the dp icon as grei with an “I” inside it. Writhe “Incognito” as profile name.
◦ Use the same icon for “Get support” as used for “Support” when logged in as a User.
◦ Use the same icon for “Rates and details” as used for “Landing page” when logged in as an Admin.
◦ Use the same icon for “Resources” as used for “SLAs” when logged in as an Admin.
◦ Use the same icon for “About support” as used for “Documentation”.
• Use the same base formatting as the “Support” page for User, for the “Get support” page. Start out by showing the Welcome message of the project in the chat window.
◦ Make the header in the support window, the project’s name only. Skip the part
◦ Make a supportive text below the header that says “Welcome to the support page for [project name]”
Source: slack
Requested by: U04E9DZ5ELF
Classification: flow
Changes
Restructure the public project support landing page (/support/[slug]) to use a layout with a 61px top banner colored by the project's branding primary_color, a left sidebar matching the user-role sidebar (with 4 custom nav items, an Incognito profile, and the collapse interaction), and replace the existing top tab bar with sidebar-driven views. The default Get support view should mirror the user-role /support/chat layout — a chat window showing the project welcome message, with the project name as the header and a 'Welcome to the support page for [project name]' subtitle.
Security Review
Status: warn
No dependency changes (package.json untouched, no npm audit needed). Two medium-severity concerns worth verifying: the redirect parameter handoff in handleSignIn relies on /auth/confirmed validating origins, and anonymous ticket creation depends entirely on RLS plus rate-limiting to prevent abuse and LLM cost exhaustion via classify-ticket. Several low-severity hardening items around input length, image source allowlisting, color validation, and markdown escaping.
Warnings:
redirect=${encodeURIComponent(window.location.href)}. While window.location.href is same-origin at call time, the path and query string portions are fully user-controllable (e.g., crafted/support/?next=//evil.comstyle payloads) and are forwarded verbatim to /auth/confirmed. If /auth/confirmed performs window.location assignments or router.push() on theredirectvalue without validating that the parsed URL's origin matches the app origin, attackers can phish users via a trusted-looking signin link.created_by: user?.id || nullfor users who are not signed in. This is a public, unauthenticated write path that depends entirely on Supabase RLS to prevent abuse (spam, resource exhaustion, arbitrary project_id targeting). The Edge Functionclassify-ticketis then invoked with the resulting ticket data, potentially burning AI tokens on attacker-generated content.description: messageis sent unbounded. Title is correctly truncated to 100 chars via substring, but description and the subsequent sendMessage content can be arbitrarily large, enabling storage exhaustion and inflated LLM costs in classify-ticket.brandingData?.logo_urldirectly. A project owner can set this to any URL, enabling tracking pixels, request smuggling, or IP harvesting of all public-support visitors. The eslint-disable comment removes Next.js's image-domain allowlist check, which would otherwise mitigate this.style={{ backgroundColor: primaryColor }}usesbrandingData?.primary_colordirectly. React's inline style object prevents declaration-injection (no semicolons interpreted), but an attacker-controlled value likeurl(//evil.com/track.png)or a long string can still cause a network request or visual defacement on the public support page.setMessage((prev) => prev + "\n\n"). If the storage URL ever contains a literal)(unlikely but possible in signed URL query strings or with custom storage keys), the markdown renderer downstream will mis-parse it, and an attacker who can influence the storage path could craft a URL ending in)[xss](javascript:...)to break out of the image syntax.🤖 Generated by githelp-support agent team