7 examples

Broken link

Link directs users to a non-existent or incorrect page.

[ FAQ1 ]

What is a broken link?

A broken link occurs when a hyperlink leads users to a webpage, document, or resource that no longer exists or cannot be reached. Common reasons include moved, deleted, or incorrectly entered URLs, server downtime, or changes in a website's structure. Visitors encountering broken links typically see an error message like "404 Not Found," indicating that the target resource is missing. Frequent broken links degrade site usability and may harm a website’s credibility and search engine optimization (SEO).
[ FAQ2 ]

How to fix a broken link

To fix broken links, regularly audit your website using tools designed to detect invalid hyperlinks. Upon identifying a broken link, correct the hyperlink URL by updating it to point to the accurate location of the resource. If the resource has been removed permanently, redirect the broken link to an appropriate existing page, such as a relevant article or your homepage. Implement custom 404 error pages that help users navigate back to active content on your site. Proactively maintaining links through routine checks can prevent future broken links and improve overall user experience.
diff block
+/*
+ Here you can edit CSS for your theme and apply it on Hydra.
+ There are a few classes already in place, you can use them to style the launcher.
+
+ If you want to learn more about how to run Hydra in dev mode (which will allow you to inspect the DOM and view the classes)
+ or how to publish your theme in the theme store, you can check the docs:
+ https://docs.hydralauncher.gg/
+
+ Happy hacking!
+ */
+
+ /* Header */
+ .header {}
+
+ /* Sidebar */
+ .sidebar {}
+
+ /* Main content */
+ .container__content {}
+
+ /* Bottom panel */
+ .bottom-panel {}
+
+ /* Toast */
+ .toast {}
+
+ /* Button */
+ .button {}
+
+body {
+ margin: 0;
+ color: #5d3b66;
+ font-family: Arial, sans-serif;
+
+ }
+
+
+ #root {
+ background: #473c88
+ url("https://preview.redd.it/5ejg7ogkmq541.jpg?width=1080&crop=smart&auto=webp&s=bac8e3f95bafb89b2dbca5ce2ede9f153254961d")
+ no-repeat center center;
+ background-size: cover;
Greptile
greptile
style: Background image uses an external Reddit URL. Consider hosting the image in the repository to prevent broken links if the Reddit post is removed.
diff block
Infisical is designed to provide comprehensive, centralized, and efficient management of secrets, certificates, and encryption keys within organizations. Below is an overview of Infisical's structured components, which developers and administrators can leverage for optimal project management and security posture.
-### 1. Projects
+### 0. Cluster/Instance
+
+- **Best Practice**: In most cases, a single Infisical instance or cluster is sufficient. Multiple clusters are typically only necessary for very large, globally distributed organizations.
+- **Use Case**:
+ - **Cloud-hosted** deployments typically use a single cluster. While technically possible, using multiple clusters is not a common practice and is generally unnecessary.
+ - **Self-hosted** deployments can be configured with multiple clusters if needed.
+
+
+### 1. Organization
+
+- **Definition**: An Infisical [organization](/documentation/platform/organization) is a set of projects that use the same billing.
+- **Use Case**:
+ - In **self-hosted** setups, you can create multiple organizations (e.g., one for each department or business unit).
+ - In **cloud-hosted deployments**, it's standard to use a single organization.
+
+### 2. Projects
- **Definition and Role**: [Projects](/documentation/platform/project) are the highest-level construct within an [organization](/documentation/platform/organization) in Infisical. They serve as the primary container for all functionalities.
- **Correspondence to Code Repositories**: Projects typically align with specific code repositories.
- **Functional Capabilities**: Each project encompasses features for managing secrets, certificates, and encryption keys, serving as the central hub for these resources.
-### 2. Environments
+### 3. Environments
- **Purpose**: Environments are designed for organizing and compartmentalizing secrets within projects.
- **Customization Options**: Environments can be tailored to align with existing infrastructure setups of any project. Default options include **Development**, **Staging**, and **Production**.
- **Structure**: Each environment inherently has a root level for storing secrets, but additional sub-organizations can be created through [folders](/documentation/platform/folder) for better secret management.
-### 3. Folders
+### 4. Folders
- **Use Case**: Folders are available for more advanced organizational needs, allowing logical separation of secrets.
- **Typical Structure**: Folders can correspond to specific logical units, such as microservices or different layers of an application, providing refined control over secrets.
-### 4. Imports
+### 5. Imports
- **Purpose and Benefits**: To promote reusability and avoid redundancy, Infisical supports the use of imports. This allows secrets, folders, or entire environments to be referenced across multiple projects as needed.
- **Best Practice**: Utilizing [secret imports](/documentation/platform/secret-reference#secret-imports) or [references](/documentation/platform/secret-reference#secret-referencing) ensures consistency and minimizes manual overhead.
-### 5. Approval Workflows
+### 6. Approval Workflows
- **Importance**: Implementing approval workflows is recommended for organizations aiming to enhance efficiency and strengthen their security posture.
- **Types of Workflows**:
- **[Access Requests](/documentation/platform/pr-workflows)**: This workflow allows developers to request access to sensitive resources. Such access can be configured for temporary use, a practice known as "just-in-time" access.
Greptile
greptile
logic: Broken link to /documentation/platform/pr-workflows - this page doesn't seem to exist in the docs
diff block
* ✨ A refreshed desktop UI & mobile UX
* ➕ Much, much more
-This guide is meant to help you **upgrade from Storybook 6.x to 8.0** successfully!
+This guide is meant to help you **upgrade from Storybook 7.x to 8.0** successfully!
+
+<Callout variant="info">
+ **Migrating from Storybook 6.x?**
+
+ You can reference our [migration guide for Storybook 6 to 8](../../release-8-6/docs/migration-guide/from-older-version.mdx).
Greptile
greptile
logic: Broken link - the path '../../release-8-6/docs/migration-guide/from-older-version.mdx' appears to be incorrect since it references a non-existent version (8.6)
diff block
+# Changelog
+
+All notable changes to the BatchGrader project will be documented in this file.
+
+## 0.6.1.0 - 2025-05-17
+
+### Added
+
+- Implemented a reprocessing feature to allow re-running failed items from a previous batch job.
+ - Includes new CLI arguments: `--reprocess-from`, `--reprocess-input-file`, and `--original-input-id-column`.
+ - Output files for reprocessing runs are suffixed with `_reprocessed`.
+- Integrated an automatic retry mechanism for OpenAI API calls using the `tenacity` library.
+ - Configurable retry settings (`max_retries`, `initial_backoff_seconds`, `max_backoff_seconds`) via `config.yaml`.
+ - Retries common API errors like `APIConnectionError`, `RateLimitError`, `APITimeoutError`, and server-side `APIStatusError`s.
+
+### Changed
+
+- Updated `docs/scratchpad.md` with detailed documentation for the new reprocessing and retry features.
+- Bumped project version to `0.6.1.0`.
+
+## 0.6.0.3 - 2025-05-17
+
+- Core batch processing and evaluation functionality is robust, with 86%+ test coverage.
+- All major features work as intended as far as I've been able to test
+- No longer feeling that self conscious about it being a pub repo
+
+## 0.5.9 - 2025-05-16
+
+### Added
+
+- Completed test coverage improvements across multiple modules
+- Achieved 100% coverage for logger.py
+- Near-perfect coverage (>90%) for cost_estimator.py, config_loader.py, evaluator.py, log_utils.py, token_tracker.py, and utils.py
+- All tests now running with pytest, avoiding actual API calls to OpenAI
+- Updated code_review.md to reflect completed test improvements
+
+### Changed
+
+- Standardized testing patterns across the codebase
+- Improved test reliability with proper resource cleanup
+- Enhanced test assertions for better debugging
+
+## 0.5.8.3 - 2025-05-16
+
+### Added
+
+- Added comprehensive tests for the `input_splitter` module ([`src/input_splitter.py`](src/input_splitter.py:1)), covering various file types, splitting strategies, edge cases, and error handling. Test file created at [`tests/test_input_splitter.py`](tests/test_input_splitter.py).
+
Greptile
greptile
syntax: Broken links in changelog - remove the :1 line reference and just keep the file paths ```suggestion +- Added comprehensive tests for the `input_splitter` module ([`src/input_splitter.py`](src/input_splitter.py)), covering various file types, splitting strategies, edge cases, and error handling. Test file created at [`tests/test_input_splitter.py`](tests/test_input_splitter.py). ```
diff block
+name: Release
+on:
+ release:
+ types: [created]
+
+jobs:
+ create-release:
+ runs-on: ubuntu-latest
+ outputs:
+ release_id: ${{ steps.create-release.outputs.result }}
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup Bun
+ uses: oven-sh/setup-bun@v1
+ with:
+ bun-version: 1.2.2
+
+ - name: Get version
+ id: get_version
+ run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
+
+ build-tauri:
+ needs: create-release
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - platform: macos-latest
+ args: --target universal-apple-darwin
+ - platform: ubuntu-latest
+ args: ""
+
+ runs-on: ${{ matrix.platform }}
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup Bun
+ uses: oven-sh/setup-bun@v1
+ with:
+ bun-version: 1.2.2
+
+ - name: Install Rust
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
+
+ - name: Rust Cache
+ uses: Swatinem/rust-cache@v2
+ with:
+ workspaces: "frontend/src-tauri -> target"
+ cache-on-failure: true
+
+ - name: Install dependencies (macOS)
+ if: matrix.platform == 'macos-latest'
+ run: |
+ brew install openssl@3
+
+ - name: Install dependencies (Linux)
+ if: matrix.platform == 'ubuntu-latest'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libgtk-3-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - name: Install frontend dependencies
+ working-directory: ./frontend
+ run: bun install
+
+ - name: Build Tauri App
+ uses: tauri-apps/tauri-action@v0
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
+ TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
+ APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
+ APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
+ APPLE_ID: ${{ secrets.APPLE_ID }}
+ APPLE_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
+ APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
+ VITE_OPEN_SECRET_API_URL: https://enclave.trymaple.ai
+ VITE_MAPLE_BILLING_API_URL: https://billing.opensecret.cloud
+ VITE_CLIENT_ID: ba5a14b5-d915-47b1-b7b1-afda52bc5fc6
+ with:
+ projectPath: './frontend'
+ tagName: ${{ github.ref_name }}
+ releaseName: 'Maple v${{ github.ref_name }}'
+ releaseBody: 'See the assets to download this version and install.'
+ releaseDraft: true
+ prerelease: false
+ args: ${{ matrix.args }}
+
+ update-latest-json:
+ needs: build-tauri
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Download release artifacts
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ mkdir -p artifacts
+ gh release download ${{ github.ref_name }} -D artifacts
+
+ - name: Generate latest.json
+ id: generate-latest
+ run: |
+ VERSION="${{ github.ref_name }}"
+ RELEASE_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
+
+ # Get signatures from the artifacts
+ MACOS_ARM_SIG=$(cat artifacts/*.app.tar.gz.sig)
+ MACOS_X64_SIG=$(cat artifacts/*.app.tar.gz.sig)
+ LINUX_X64_SIG=$(cat artifacts/*.AppImage.sig)
+
+ cat > latest.json << EOF
+ {
+ "version": "${VERSION#v}",
+ "notes": "See the release notes at https://github.com/OpenSecret/maple/releases/tag/${VERSION}",
+ "pub_date": "${RELEASE_DATE}",
Greptile
greptile
logic: Release notes URL uses 'OpenSecret/maple' but repository is 'OpenSecretCloud/maple'. This will result in broken links.
diff block
exec('git', args)
.trim()
.toString()
- .split('\n');
+ .split('\n')
+ .filter(Boolean);
const listChangedFiles = () => {
- const mergeBase = execGitCmd(['merge-base', 'HEAD', 'master']);
+ const mergeBase = execGitCmd(['merge-base', 'HEAD', 'origin/master'])[0];
return new Set([
- ...execGitCmd(['diff', '--name-only', '--diff-filter=ACMRTUB', mergeBase]),
- ...execGitCmd(['ls-files', '--others', '--exclude-standard']),
+ ...execGitCmd(['diff', '--name-only', mergeBase]),
+ ...execGitCmd(['ls-files', '--others']),
Greptile
greptile
Based on the earlier comment, we should keep the `--diff-filter=ACMRTUB` to prevent including deleted files in the diff output, and we should also maintain the `--exclude-standard` flag for `ls-files` to ignore files specified in .gitignore. Here's the fix:
suggested fix
+ ...execGitCmd(['diff', '--name-only', '--diff-filter=ACMRTUB', mergeBase]),
+ ...execGitCmd(['ls-files', '--others', '--exclude-standard']),
This maintains the original behavior of only tracking files that are Added, Copied, Modified, Renamed, Type-changed, Unmerged, or have a broken link (B), while also properly handling gitignored files.
diff block
- **/posthog-react-native** > React Native specific code
- **/posthog-web** > Web (DOM) specific code
- **/posthog-ai** > Node.js SDK for LLM Observability
+- **/posthog-edge** > Edge compatible version of the Node.js SDK
For Session Replay, See [posthog-react-native-session-replay](https://github.com/PostHog/posthog-react-native-session-replay/CHANGELOG.md)
Greptile
greptile
syntax: Broken link - CHANGELOG.md path should use blob/main instead of just CHANGELOG.md
suggested fix
+For Session Replay, See [posthog-react-native-session-replay](https://github.com/PostHog/posthog-react-native-session-replay/blob/main/CHANGELOG.md)