v2.1.0
v2.1.0 Release Notes
Released on Tuesday, July 14, 2026. This release introduces a global feedback widget, enables two-way label transfers between repositories and the Label Pack, and adds self-service GitHub organization access management. It also resolves critical production issues, including blocked dashboard form posts, Safari background video compatibility, and Vite 7 dependency mismatches.
GitHub Integration & Dashboard
- In-app GitHub organization access management. Users who need to expand Gitset's access to newly joined organizations can now do so directly from the UI, bypassing manual GitHub settings navigation.
- Added a new
/api/auth/github/manageendpoint that redirects to the Gitset OAuth application grant page. - Added a persistent footer row to the repository selector ("Can't find your organization or repository?") to trigger the flow, alongside a "GitHub connection" card on the dashboard featuring direct access management and re-authorization actions.
- Added a new
- Fixed blocked dashboard form posts in production. Dashboard form actions (such as revoking sessions or deleting accounts) were failing with
403 Cross-site POST form submissions are forbiddenin production. This occurred because Astro ignoredX-Forwarded-Protobehind Cloud Run's TLS-terminating proxy, causing a protocol mismatch. Configuring the allowed domains list restores trust in the forwarded protocol and resolves the issue.
Label Pack
- Two-way label transfers. The Label Pack now acts as a two-way clipboard, allowing users to use existing repositories as a source of truth instead of manually writing or pasting Markdown.
- Export to Pack: A new action in the Repository Labels tab copies all labels (name, color, description) into the pack draft and redirects to the pack tab.
- Import from Repository: The Import view now supports importing directly from a selected repository alongside the legacy Markdown paste flow.
- Smart Merging: If a draft already contains labels, importing from a repository prompts the user to either replace the draft entirely or merge the incoming labels.
User Interface & Polish
- Global feedback widget. A persistent feedback trigger has been added to
BaseLayout(appearing across all pages and tools), with a matching link in the footer. The widget automatically detects the active tool or page and includes an opt-in checkbox for browser and route metadata. - Collapsible composer inputs. Large text inputs (such as pasted bug reports or long commit lists) in Issue Crafter, PR Maker, Release Manager, and README Generator were ballooning the height of auto-growing textareas. This forced the output panel to stretch awkwardly. The new
CollapsibleComposercaps the input height, dims and blurs the fields, and disables them while a generation is in flight. - Persistent composer collapse state. The collapsed state now persists after generation settles (on both success and error states) rather than snapping back to full height immediately, keeping the layout balanced.
- Work Sans for headlines. The homepage hero H1, tools section H2, and final CTA H2 now use Work Sans (font-weight 600) for a cleaner, more distinct editorial treatment. The rest of the site continues to use IBM Plex Sans.
- Footer layout simplification. Folded the "Company" links (Contact, Privacy Policy, Terms of Service) into the "Resources" column. This balances the column heights (shifting from an uneven 8/4/3 layout to a clean 8/7 split) and prevents wrapping issues on medium viewports.
- Floating feedback button behavior. The floating feedback trigger now automatically hides when the footer scrolls into view to prevent visual overlap.
Performance & Compatibility
- Safari background video playback. The homepage hero background videos (
.mp4and.webm) were both encoded in AV1, which Safari cannot play without hardware-gated support. The.mp4fallback has been re-encoded to H.264 (libx264, faststart), restoring looping background video playback on macOS and iOS. - Vite 7 compatibility restored. Downgraded
@astrojs/reactfrom^6.0.1(which targets Vite 8 / Astro 7) to5.0.7(built for Vite 7 / Astro 6). This resolves a dependency mismatch that was injecting a Rolldown-backed Vite 8 instance into Astro's Vite 7 dev server, which previously broke the React fast-refresh transform pipeline. - Direct Vite dependency declaration. Declared
viteas a directdevDependencyinpackage.json. This ensures that the.envtoprocess.envbridge inastro.config.mjscan resolveloadEnvduring strict, isolated Docker builds where transitive dependencies are not exposed to the project root. - Local environment variable bridging. Added a configuration in
astro.config.mjsthat loads.envfiles using Vite'sloadEnvand copies them toprocess.envduring local development. This preventspnpm devfrom crashing on missing environment variables (likeDB_URL) while keeping production environment variables unaffected.
Other Changes
- Removed the deprecated
baseUrlproperty fromtsconfig.jsonsince TypeScript 7.0 drops support for it and modern path resolution resolves relative to the config directory by default. - Reordered the footer's Resources column and renamed "README Generator" to "Readme Generator" for consistency.
Bug Fixes
- Fixed a production crash during Docker builds where
astro buildfailed withCannot find module 'vite'. - Fixed a layout bug where the floating feedback button overlapped footer links.
- Fixed a bug where the composer textareas snapped back to their fully expanded heights immediately after a generation failed, breaking the output panel layout.
Full Changelog: v2.0.0...v2.1.0