Conversation
- Add labs collection to content.config.ts with schema for title, description, category, githubUrl, demoUrl, status, startDate - Create sample labs content files: raycast-extensions.mdx, job-scraper-bot.mdx, kynd-design-system.mdx - Add labs index page that displays all labs using WideCard components - Add dynamic [id].astro page for individual lab items with support for both single-item and multi-item labs - Support for multi-item labs (like Raycast Extensions) with LinkCard grids - Support for single-item labs with content and sidebar metadata
- Use default/green/black variants instead of non-existent labs variant - Fix Prettier formatting issues - Labs pages now work with standard styling
Merge remote-tracking branch 'origin/cards' into labs
- Add GITHUB_APP_ID, GITHUB_APP_INSTALLATION_ID, and GITHUB_APP_PRIVATE_KEY - Configure as server-side secret environment variables - Required for GitHub App authentication in Labs collection
- Add @octokit/app, @octokit/auth-app, @octokit/rest for GitHub API - Add marked for markdown rendering - Add dotenv for environment variable loading - Add @types/marked for TypeScript support - Update lockfile with new dependencies
- Replace file-based loader with async GitHub API loader - Fetch repositories with 'labs' topic from kyndig organization - Add comprehensive schema for GitHub repository data - Include README content, technology detection, and metadata - Support for private repositories and contributor information
- Replace MDX content with GitHub README rendering - Add comprehensive metadata sidebar with repo stats - Include technology badges and contributor avatars - Show language breakdown and repository information - Add proper ARIA labels and accessibility features - Support for private repository indicators
- Sort labs by stars and last updated date - Add repository statistics (stars, forks) to cards - Include status and category badges - Show private repository indicators - Improve responsive design for mobile devices
- Support both YYYY-MM format and ISO date strings - Handle GitHub API date format (2024-03-21T15:44:06Z) - Maintain backward compatibility with existing date formats
- githubAuth.ts: GitHub App authentication with Octokit - labsDataFetcher.ts: Fetch and process repository data from GitHub - githubHelpers.ts: GitHub API helper functions and utilities - technologyDetection.ts: Detect technologies from package.json, files, and README - TechnologyBadges.astro: Display detected technologies as badges
- Delete static MDX files replaced by GitHub API integration - Remove brreg-raycast-extension.mdx, job-scraper-bot.mdx - Remove slacktivity.mdx, yr-raycast-extension.mdx - Content now dynamically fetched from GitHub repositories
- Remove test-github-connection.js (temporary debugging file) - GitHub App integration now working and tested
- Extract GitHub stats display into reusable component - Use StarIcon and ForkIcon components instead of hardcoded SVGs - Add responsive design with mobile center alignment - Support stargazersCount and forksCount props
- Add variant prop to respect DynamicCard color schemes - Fix CSS specificity for black variant category badges - Separate background and text colors for proper contrast - Ensure dark text on light background for black variant category badges
Rename adjacent near-duplicate section headings so visitors can distinguish identity from traits at a glance. Made-with: Cursor
Implement content and IA overhaul across primary routes
Split parsing, GitHub transport, project sync, issue operations, and orchestration into dedicated files, while keeping the legacy script as a compatibility shim and pointing the merge workflow to the new entrypoint. Made-with: Cursor
Add a dedicated Node test step so script refactors stay covered in the check workflow instead of relying on manual local execution. Made-with: Cursor
Re-export parse helper functions from the legacy issue-hygiene entrypoint to preserve backward compatibility, and add a regression test that locks the shim API to the canonical parser exports. Made-with: Cursor
Refactor issue-hygiene merge script into focused modules
Add a shared Playwright config and explicit e2e scripts so browser tests use one deterministic base URL and runner setup instead of ad hoc invocation. Made-with: Cursor
Install Chromium in the workflow and execute the shared e2e script after build so browser regressions are caught before merge. Made-with: Cursor
Remove manual localhost probing from the Contact CTA contrast test and rely on the central Playwright config for deterministic navigation. Made-with: Cursor
Exclude generated Playwright reports and failure artifacts from version control to keep the working tree clean during e2e development. Made-with: Cursor
Switch the Playwright web server command from preview to dev because the Netlify adapter does not support `astro preview` in this project. Made-with: Cursor
Install `@axe-core/playwright` and introduce a reusable helper that asserts violations with readable failure output to keep route and journey specs DRY. Made-with: Cursor
Introduce parameterized accessibility scans for key static and dynamic routes so broad WCAG regressions are caught without duplicating test boilerplate. Made-with: Cursor
Add focused interaction tests for keyboard navigation and stateful controls so behavior changes in core shell components are validated alongside route scans. Made-with: Cursor
Add form error-state coverage and address defects uncovered by axe by exposing non-validation action errors, avoiding redundant employee image alt text, and improving error text contrast. Made-with: Cursor
Fix TypeScript compatibility for axe violation formatting and format the contact form error branch after exposing server-side action failures to users. Made-with: Cursor
Install link checking dependencies and add explicit scripts for internal crawl checks plus scheduled external monitoring. Made-with: Cursor
Make internal link validation blocking in CI while adding a scheduled non-blocking external link check workflow for third-party drift visibility. Made-with: Cursor
Cover critical flows from header/footer/CTA routing through project and employee detail access plus handbook hash navigation to detect broken user journeys quickly. Made-with: Cursor
Add a dedicated QA automation guide and README quick-start instructions so contributors can run, interpret, and extend the layered checks consistently. Made-with: Cursor
Use a single E2E script entrypoint because Playwright already switches CI behavior from process.env.CI, which avoids drift between local and CI commands. Made-with: Cursor
The previous hasNot descendant filter was a no-op for anchor elements and could still match footer links. Scope the locator to main content so the test validates a real on-page conversion CTA. Made-with: Cursor
Split internal link checking into a dist-only script and have the CI workflow call that after the explicit build step. This removes a duplicate build without changing the validation behavior. Made-with: Cursor
The previous skip pattern excluded all kynd.no URLs, which prevented recursive crawling from reaching subpages and discovering their outbound links. Keep recursion and only skip non-http schemes. Made-with: Cursor
Standardize Playwright CI test harness
Add axe-driven accessibility coverage and interaction checks
Resolve the CI/package merge conflict while preserving the PR's link-check coverage and deduplicating the Playwright CI script entrypoint. Made-with: Cursor
Add internal link checks and journey smoke automation
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.
Summary
area:foundation(#27,#31,#32): semantic surface/border/on-primary tokens, dark-theme overrides, and heading scale extensionsBaseHead, default root theme state inBase, and accessible persisted header toggles (desktop + mobile)foundation-handoff-checklist.mdwith validation gates and downstream contracts; plus README setup note for Corepack PATH edge caseTest plan
pnpm lintpnpm buildpnpm devand verify no flash-of-wrong-theme on hard refresh in light/dark/,/tjenester,/prosjekter,/om-kynd) for token-driven contrast in both themesNotes
.cursor/mcp.jsonfrom commits because it contains a plaintext API keypnpm-lock.yamlout of this PR update because the lockfile diff is tool-version churn (v6 -> v9 format) unrelated to foundation behaviorNote
Medium Risk
Medium risk due to major version upgrades (Astro 6 + Netlify adapter) and changes to build/CI configuration and environment schema, which could affect deploy/build behavior. Most other changes are additive docs/config, but the upgrade surface is broad.
Overview
Upgrades the Astro/Netlify toolchain and tightens CI reproducibility. CI now pins
pnpmto10.24.0, injects GitHub App secrets during the workflow, andpackage.jsonaddspnpm.onlyBuiltDependenciesplus aci:localscript.Extends site build configuration and env handling.
astro.config.mjsaddsremark-gfm,astro-icon, Shiki markdown config, sitemap filtering, updates font weights, and makes Slack + GitHub App env fields optional.Adds/updates repo docs and misc config. Introduces
CHANGELOG.md,GITHUB-AUTH.md,foundation-handoff-checklist.md, and overhaul briefs; updatesREADME.md; ignores.cursor/in Prettier; and adds.cursor/mcp.jsonusing an env-based API key reference.Reviewed by Cursor Bugbot for commit a86e9a8. Bugbot is set up for automated code reviews on this repo. Configure here.