Skip to content

Polish release: installer, multi-arch Docker, Docusaurus docs, tighter README#155

Merged
txmed82 merged 3 commits into
masterfrom
polish-release
Jun 2, 2026
Merged

Polish release: installer, multi-arch Docker, Docusaurus docs, tighter README#155
txmed82 merged 3 commits into
masterfrom
polish-release

Conversation

@txmed82

@txmed82 txmed82 commented Jun 2, 2026

Copy link
Copy Markdown
Owner

What Changed

  • **Added ** — one-line installer supporting --local (uv venv + editable install) and --docker (clone + docker compose up -d) modes. Branch references fixed to master.
  • Updated CI/CD — added QEMU + platforms: linux/amd64,linux/arm64 for multi-arch Docker builds.
  • **Rewrote ** — tight copy with badges, one-liner install, architecture diagram, and deep links to docs site.
  • **Added ** — canonical agent context file with stack, layout, CI overview, quick commands.
  • Scaffolded Docusaurus site — curated pages (index, install, usage) + deploy workflow for GitHub Pages.\n\n## Why\nMakes Retrace look like a polished, installable open-source product from the first visit. One command installs it; one page explains it; one docs site hosts everything else.\n\n## After Merge\n- Enable GitHub Pages source: gh repo edit --pages (or via repo Settings → Pages → Source: GitHub Actions)\n- Verify Docusaurus deploys to txmed82.github.io/retrace/\n- Create GitHub release v0.1.0a1 via gh release create

Summary by CodeRabbit

  • New Features

    • Added an installer script with local and Docker modes for quick setup.
  • Documentation

    • Launched a full documentation site (install, usage, guides, architecture) with site config, sidebar, styles, and onboarding docs.
    • Rewrote README into a concise overview and added dedicated install, usage, and agents guides.
  • Chores

    • CI updated for multi-platform Docker builds (linux/amd64, linux/arm64).
    • Added automated GitHub Pages deployment for docs.

…d tighter README

- Add install.sh with --local (uv) and --docker (compose) modes
- Update CI to build linux/amd64 and linux/arm64 Docker images via QEMU
- Rewrite README: badges, one-liner install, architecture diagram, docs links
- Scaffold Docusaurus site (website/) with curated install/usage/index pages
- Add deploy.yml for GitHub Pages on push to master
- Add AGENTS.md as canonical project context for agents
- Ensure all branch references point to master (not main)
@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0c90c58b-2ab2-4197-87af-9c16f5db8fb8

📥 Commits

Reviewing files that changed from the base of the PR and between 5abc3d6 and 0e685b8.

📒 Files selected for processing (1)
  • .github/workflows/ci-cd.yml

📝 Walkthrough

Walkthrough

Adds a Docusaurus documentation site and site config, a dual-mode installer script, CI changes to enable multi-arch Docker builds, a GitHub Pages deploy workflow, a shortened README, and an AGENTS onboarding document.

Changes

Documentation Infrastructure & Installation Setup

Layer / File(s) Summary
CI/CD and Deployment Infrastructure
.github/workflows/ci-cd.yml, .github/workflows/deploy.yml
GitHub Actions workflows add a QEMU setup step and expand Docker Buildx platforms to build linux/amd64 and linux/arm64; deploy.yml builds the Docusaurus site and publishes ./website/build to GitHub Pages on pushes to master.
Installation Script with Dual Modes
install.sh
Adds a Bash installer supporting local (uv + venv, editable install) and docker (docker compose up) modes, with prerequisite checks, repo clone/update logic, validation, and next-step instructions.
Docusaurus Site Configuration
website/docusaurus.config.ts, website/package.json, website/sidebars.ts, website/src/css/custom.css
Typed Docusaurus config, npm package with scripts/deps, sidebar navigation, and custom CSS (fonts, theme variables, hero banner) are added.
Documentation Pages and Onboarding
website/docs/index.md, website/docs/install.md, website/docs/usage.md, AGENTS.md, README.md
Adds homepage, install, and usage docs; new AGENTS.md for developer onboarding; README rewritten to a concise overview linking to the docs.
sequenceDiagram
  participant Dev as Developer push
  participant GitHub as GitHub Actions
  participant QEMU as docker/setup-qemu-action
  participant Buildx as docker/build-push-action
  participant Node as Node build step
  participant Pages as actions-gh-pages

  Dev->>GitHub: push to repo (PR/branch)
  GitHub->>QEMU: run QEMU setup in ci-cd job
  QEMU->>Buildx: allow multi-arch build
  Buildx->>Buildx: build images for linux/amd64 & linux/arm64
  Dev->>GitHub: push to master
  GitHub->>Node: run Node build in deploy workflow
  Node->>Pages: publish ./website/build to gh-pages
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • txmed82/retrace#21: Updates contributor and security documentation via README.md and adds CONTRIBUTING.md and SECURITY.md.
  • txmed82/retrace#124: Updates onboarding and launch documentation by modifying README.md and community-facing markdown content.

Poem

🐰 I hopped through code and docs tonight,

Fonts and CSS set just right,
QEMU wakes the multi-arch dream,
Installer scripts brew the beam,
Pages publish — hop, take flight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the four main components of this PR: an installer script, multi-arch Docker support, Docusaurus documentation site, and a condensed README—all of which are clearly reflected in the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch polish-release

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci-cd.yml (1)

217-248: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Missing QEMU setup and multi-arch platforms in the publish job.

The cd-ghcr job publishes Docker images but lacks the QEMU setup and platforms configuration that were added to the docker-build job. This means the published images will only support the runner's native architecture (linux/amd64), not the intended multi-arch support (linux/amd64 + linux/arm64).

🐛 Proposed fix to add multi-arch support to the publish job
       - name: Checkout
         uses: actions/checkout@v4
 
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v3
+
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v3
 
       - name: Log in to GHCR
         uses: docker/login-action@v3
         with:
           registry: ghcr.io
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Publish image
         uses: docker/build-push-action@v6
         with:
           context: .
           file: docker/Dockerfile
           push: true
+          platforms: linux/amd64,linux/arm64
           tags: |
             ghcr.io/${{ github.repository }}:sha-${{ github.sha }}
             ghcr.io/${{ github.repository }}:latest

As per coding guidelines: "When modifying CI, verify docker/Dockerfile still builds and multi-arch (linux/amd64 + linux/arm64) still works"

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci-cd.yml around lines 217 - 248, The cd-ghcr publish job
is missing QEMU setup and multi-arch platforms so the pushed image will only be
native-arch; add a step before the build/push step to run
docker/setup-qemu-action (e.g., docker/setup-qemu-action@v2) and ensure
docker/setup-buildx-action remains, then update the docker/build-push-action
invocation in the Publish image step to include platforms:
"linux/amd64,linux/arm64" so ghcr images are built and pushed for both amd64 and
arm64; target the cd-ghcr job and the Publish image step in your changes.
♻️ Duplicate comments (2)
install.sh (1)

106-114: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Validate git repository before git pull.

Same issue as in local_install: the directory validation should confirm it's a git repository and ideally the correct one before running git pull.

Apply the same validation pattern suggested for local_install (lines 54-62).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@install.sh` around lines 106 - 114, Before calling git pull in the
INSTALL_DIR branch, validate that the directory is a git repository and that its
origin remote matches REPO_URL: check for a .git directory (or run git rev-parse
--is-inside-work-tree), then run git remote get-url origin and compare to
REPO_URL; if the checks pass run git pull origin master, otherwise log a warning
and either git fetch && git reset --hard origin/master or remove and re-clone
using git clone "$REPO_URL" "$INSTALL_DIR". Apply the same validation pattern
used in local_install so the code around INSTALL_DIR, git pull origin master and
REPO_URL performs these checks before pulling.
website/docs/install.md (1)

14-14: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Install script URLs reference main branch but PR targets master.

The install commands use /main/install.sh, but this PR targets the master branch. This is the same issue as in index.md and will cause 404 errors if the script doesn't exist on the main branch.

🐛 Proposed fix to use master branch
 ```bash
-curl -fsSL https://raw.githubusercontent.com/txmed82/retrace/main/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/txmed82/retrace/master/install.sh | bash

Docker install

-curl -fsSL https://raw.githubusercontent.com/txmed82/retrace/main/install.sh | bash -s -- --docker
+curl -fsSL https://raw.githubusercontent.com/txmed82/retrace/master/install.sh | bash -s -- --docker
</details>



Also applies to: 30-30

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @website/docs/install.md at line 14, Update the install script URLs to point
to the repository's master branch instead of main: locate the curl lines in
website/docs/install.md (the occurrences around the snippet with "curl -fsSL
https://raw.githubusercontent.com/txmed82/retrace/main/install.sh | bash" and
the Docker variant used with "-s -- --docker") and change "main" to "master";
also mirror the same change in the other affected occurrence referenced in
index.md (and the duplicate at lines 30-30) so all install script links
consistently use the master branch.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (2)</summary><blockquote>

<details>
<summary>README.md (1)</summary><blockquote>

`60-63`: _⚡ Quick win_

**Add language specifier to fenced code block.**

The architecture diagram should specify a language (e.g., `text`) to satisfy markdown linting and improve rendering consistency.




<details>
<summary>📝 Proposed fix</summary>

```diff
-```
+```text
 Browser / PostHog → Ingest API → Replay Processing → Detectors → Clusterer →
   Unified Incidents → Auto-Repro → Repo Scoring → Fix Prompt → Draft PR

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @README.md around lines 60 - 63, The fenced code block containing the
architecture diagram line "Browser / PostHog → Ingest API → Replay Processing →
Detectors → Clusterer → Unified Incidents → Auto-Repro → Repo Scoring → Fix
Prompt → Draft PR" should include a language specifier to satisfy markdown
linting; change the opening fence from totext so the block becomes a
text-fenced code block and leave the block contents unchanged.


</details>

</blockquote></details>
<details>
<summary>website/docs/usage.md (1)</summary><blockquote>

`28-28`: _💤 Low value_

**Consider breaking long command example for readability.**

The command on line 28 is quite long and may cause horizontal scrolling on narrow screens. Consider breaking it across multiple lines using backslashes for better readability:

<details>
<summary>♻️ Optional formatting improvement</summary>

```diff
-retrace tester create --name "Signup" --mode describe --prompt "Go through signup and verify dashboard loads" --app-url http://127.0.0.1:3000
+retrace tester create \
+  --name "Signup" \
+  --mode describe \
+  --prompt "Go through signup and verify dashboard loads" \
+  --app-url http://127.0.0.1:3000
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/docs/usage.md` at line 28, Split the long example command starting
with "retrace tester create" into multiple lines using backslashes so it wraps
without horizontal scrolling; keep the same flag order and values (retain --name
"Signup", --mode describe, --prompt "Go through signup and verify dashboard
loads", --app-url http://127.0.0.1:3000) and place a backslash after the base
command and between flag groups to improve readability while preserving the
single-line semantics when copied.
```

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @install.sh:

  • Around line 54-62: Before running git pull when INSTALL_DIR exists, validate
    that it is a git repo and that its origin matches REPO_URL: use a git check
    (e.g., git -C "$INSTALL_DIR" rev-parse --is-inside-work-tree) and compare the
    remote URL (git -C "$INSTALL_DIR" remote get-url origin) to REPO_URL; if either
    check fails, log an error via log_warn/log_info and either abort with
    instructions or replace the directory (e.g., remove and reclone) instead of
    running git pull in a non-repo or wrong-repo directory. Ensure the checks run
    before calling git pull origin master and include clear log messages referencing
    INSTALL_DIR and REPO_URL so failures are actionable.

In @website/docs/index.md:

  • Around line 33-34: The install command URLs currently point to the
    repository's main branch (e.g., URLs containing /main/install.sh) but this PR
    targets master; update the install script URLs in the documentation examples
    (the curl commands that fetch install.sh and the docker variant) to reference
    /master/install.sh instead of /main/install.sh so users won't get 404s; search
    for the curl -fsSL .../install.sh occurrences in website/docs/index.md and
    replace "main" with "master" in those URLs.

In @website/docusaurus.config.ts:

  • Around line 69-73: The Algolia config in docusaurus.config.ts currently has
    placeholder values (algolia: { appId: 'placeholder', apiKey: 'placeholder',
    indexName: 'retrace' }) which will break search; either remove the entire
    algolia config block and uninstall/remove the @docusaurus/theme-search-algolia
    dependency from website/package.json, or replace the placeholders with real
    Algolia credentials and add a clear comment noting search is disabled until
    those are set; alternatively switch to the built-in local search plugin and
    remove the algolia block and dependency accordingly.
  • Line 54: The footer link { label: 'Quickstart', to: '/quickstart' } is valid
    (doc id "quickstart" exists in sidebars.ts and docs/quickstart.md) so remove any
    comment or code treating it as a broken link; ensure the link remains and no
    redirect/404 handling is added. For themeConfig.algolia (keys
    appId/apiKey/indexName), replace the placeholder values ("placeholder") with the
    real Algolia credentials or explicitly disable Algolia by removing or commenting
    out themeConfig.algolia and adding a short comment documenting that search is
    intentionally disabled; update any documentation or README to state which choice
    was made. Ensure changes touch the same config entries in docusaurus.config.ts
    (the footer link and themeConfig.algolia) so the site build and search behavior
    are correct.

In @website/package.json:

  • Line 15: The package.json "ci" script uses pnpm ("ci": "pnpm build") which
    conflicts with the deployment workflow that uses npm; update the "ci" script to
    use npm so both match (e.g., replace the pnpm command with the equivalent npm
    invocation) and ensure the change targets the "ci" script entry in package.json
    and is consistent with the commands invoked by deploy.yml.

Outside diff comments:
In @.github/workflows/ci-cd.yml:

  • Around line 217-248: The cd-ghcr publish job is missing QEMU setup and
    multi-arch platforms so the pushed image will only be native-arch; add a step
    before the build/push step to run docker/setup-qemu-action (e.g.,
    docker/setup-qemu-action@v2) and ensure docker/setup-buildx-action remains, then
    update the docker/build-push-action invocation in the Publish image step to
    include platforms: "linux/amd64,linux/arm64" so ghcr images are built and pushed
    for both amd64 and arm64; target the cd-ghcr job and the Publish image step in
    your changes.

Duplicate comments:
In @install.sh:

  • Around line 106-114: Before calling git pull in the INSTALL_DIR branch,
    validate that the directory is a git repository and that its origin remote
    matches REPO_URL: check for a .git directory (or run git rev-parse
    --is-inside-work-tree), then run git remote get-url origin and compare to
    REPO_URL; if the checks pass run git pull origin master, otherwise log a warning
    and either git fetch && git reset --hard origin/master or remove and re-clone
    using git clone "$REPO_URL" "$INSTALL_DIR". Apply the same validation pattern
    used in local_install so the code around INSTALL_DIR, git pull origin master and
    REPO_URL performs these checks before pulling.

In @website/docs/install.md:

  • Line 14: Update the install script URLs to point to the repository's master
    branch instead of main: locate the curl lines in website/docs/install.md (the
    occurrences around the snippet with "curl -fsSL
    https://raw.githubusercontent.com/txmed82/retrace/main/install.sh | bash" and
    the Docker variant used with "-s -- --docker") and change "main" to "master";
    also mirror the same change in the other affected occurrence referenced in
    index.md (and the duplicate at lines 30-30) so all install script links
    consistently use the master branch.

Nitpick comments:
In @README.md:

  • Around line 60-63: The fenced code block containing the architecture diagram
    line "Browser / PostHog → Ingest API → Replay Processing → Detectors → Clusterer
    → Unified Incidents → Auto-Repro → Repo Scoring → Fix Prompt → Draft PR" should
    include a language specifier to satisfy markdown linting; change the opening
    fence from totext so the block becomes a text-fenced code block and
    leave the block contents unchanged.

In @website/docs/usage.md:

  • Line 28: Split the long example command starting with "retrace tester create"
    into multiple lines using backslashes so it wraps without horizontal scrolling;
    keep the same flag order and values (retain --name "Signup", --mode describe,
    --prompt "Go through signup and verify dashboard loads", --app-url
    http://127.0.0.1:3000) and place a backslash after the base command and between
    flag groups to improve readability while preserving the single-line semantics
    when copied.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro Plus

**Run ID**: `b08b4587-bd7d-40c9-8448-e2273ad2ef0a`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 8ceda5f72f5a6deddae3c007628eb2f322b00c31 and 918331235a3df0fdbfd0142abf9a22c768c510e5.

</details>

<details>
<summary>📒 Files selected for processing (12)</summary>

* `.github/workflows/ci-cd.yml`
* `.github/workflows/deploy.yml`
* `AGENTS.md`
* `README.md`
* `install.sh`
* `website/docs/index.md`
* `website/docs/install.md`
* `website/docs/usage.md`
* `website/docusaurus.config.ts`
* `website/package.json`
* `website/sidebars.ts`
* `website/src/css/custom.css`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment thread install.sh
Comment thread website/docs/index.md Outdated
Comment thread website/docusaurus.config.ts
Comment thread website/docusaurus.config.ts Outdated
Comment thread website/package.json Outdated
@txmed82 txmed82 merged commit 4fdcfb8 into master Jun 2, 2026
11 checks passed
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