Skip to content

Commit 56952cc

Browse files
authored
ci: switch to Biome (#20)
* build: switch to Biome from ESLint and Prettier * style: change font-family quotes from single to double in index.css * style: apply Biome formatting and linting rules - Remove explicit undefined assignments in variable declarations - Use class name instead of 'this' in static methods - Convert value imports to type imports where appropriate - Use 'const' instead of 'let' for variables not reassigned * refactor: add explicit type to error boundary reset button * fix: add type="button" to button elements in web components Prevent implicit form submission by explicitly setting button type. * feat: add keyboard accessibility to sidebar session items Add role='button', tabIndex, and onKeyDown handler to session items in the sidebar to enable keyboard navigation with Enter and Space keys. This improves accessibility for users relying on keyboard input. * refactor: replace div with button in sidebar for semantic HTML Use proper semantic HTML elements for better accessibility instead of div with role attribute. * chore: update opencode command definitions and rename directory - Rename .opencode/commands/ to .opencode/command/ - Update changelog-update.md to curate [Unreleased] section only - Enhance commit.md with detailed conventional commits guidelines * style: add explicit type attribute to button elements - Add type="button" to session navigation buttons in sidebar component - Ensures buttons do not accidentally submit forms if context changes - Improves code clarity and satisfies linting requirements * style: format test/utils.ts with biome * style: add curly braces to forEach callback * style: format arrow function braces in test utils * style(test/utils): add braces to arrow functions in forEach Biome requires braces for arrow functions in forEach callbacks to improve code consistency and readability. * refactor: simplify CustomError class by removing redundant constructor * fix: correct Symbol.dispose syntax in web server test Symbol.dispose should not have quotes around 'dispose'. * chore: remove incomplete DOM vs serialize addon comparison test * fix: add null check for root element in client Prevent runtime error by throwing a clear error message if the root DOM element is not found. * refactor(web/client): remove performance monitoring Remove unused performance monitoring utilities and initialization from the web client, including the PerformanceMonitor class and web vitals tracking functionality. * ci: update test fixtures for Biome linting * refactor: change RouteBuilder from class to object * fix(test): prevent runtime error in e2e fixtures port parsing Ensure urlMatch[1] exists before parsing to avoid parseInt(undefined). This fixes a potential bug where the regex might not capture the port group. * ci: switch to Biome Apply Biome linting and formatting rules to the codebase, including: - Modern Node.js imports (node:path, etc.) - Template literals for string concatenation - Optional chaining for safer property access - Explicit radix for parseInt - Removal of non-null assertions where safe * style: remove unnecessary non-null assertion from WebSocket constructor * build: update lint ignore to biome in xterm-test-helpers.ts Switch the lint ignore directive from ESLint to Biome syntax for the control characters regex in the stripAnsi function. * style: format code with biome * ci: replace combined quality job with separate biome checks - Split the 'quality' matrix job into individual jobs for test, typecheck, lint, format:check, and test:e2e - This allows parallel execution and clearer failure identification for each check * chore: switch development environment from nix flake to devenv Replace flake.nix with devenv.nix and devenv.yaml for improved dev env management. Update .envrc to use devenv instead of flake. Adjust .gitignore to ignore devenv and direnv files. Update biome to version 2.3.13 and adjust package.json scripts. * Add flake symlinks for devenv * revert: Add flake symlinks for devenv * ci: switch CI to use devenv with biome - Update CI workflow to use devenv shell instead of nix develop - Add biome and bashInteractive packages to devenv.nix - Change nixpkgs input in devenv.yaml to nixos-unstable - Update devenv.lock accordingly * ci: add step to install devenv in CI workflow Install devenv using nix profile install nixpkgs#devenv to enable running bun commands within devenv shell environment. * ci: update workflow quality checks to run format instead of format:check Switch from format:check to format in the CI matrix to align with the transition to biome for code formatting. * ci: switch nix-flake-test job from matrix to sequential steps Remove the strategy matrix from the nix-flake-test job and replace it with individual steps for each quality check (test, typecheck, lint, format, test:e2e). This changes the execution from parallel matrix jobs to sequential steps in a single job. * build: add bun to devenv packages * ci: update Bun version and fix nix profile command - Bump Bun version from 1.3.6 to 1.3.8 - Change nix profile install to add for devenv * build: configure Biome for linting and formatting - Enable JavaScript language support in devenv - Add Bun 1.3.8 via bun.enable - Remove direct bun package from packages - Add format and format:fix scripts using Biome - Remove node_modules/.bin from PATH in enterShell * build(devenv): add playwright browser support Add let block to dynamically determine chromium and firefox revisions from playwright-driver.browsers.json. Include playwright-driver.browsers in packages and set PLAYWRIGHT_BROWSERS_PATH, PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH, and PLAYWRIGHT_FIREFOX_EXECUTABLE_PATH environment variables. This enables running Playwright tests in the development environment. * build: switch CI to use Biome for linting and formatting - Update CI workflow to run lint, format, and typecheck commands directly - Add unittest script in package.json and devenv.nix for consistency - Update test:all to use unittest instead of bun test * ci: update workflow for Biome integration - Use 'unittest' script instead of 'bun test' for consistency in devenv job - Temporarily disable Magic Nix Cache (commented out) * ci: remove commented Magic Nix Cache steps * docs: update documentation and configuration for Biome linting/formatting - Add AGENTS.md with comprehensive project guidelines including Biome-specific rules - Update README.md with corrected slash commands and build instructions - Include AGENTS.md in OpenCode instructions * docs: add note about bun command failures on NixOS * ci: remove unnecessary id-token permission from Devenv CI job The permission was added for FlakeHub cache authentication, but the job does not use FlakeHub. Removing to avoid granting excessive permissions. * ci: switch workflow to use bun commands directly Remove devenv scripts and update CI to call bun commands explicitly, integrating Biome for linting and formatting. * chore: remove AGENTS.md and update instructions Remove the AGENTS.md file which contained detailed guidelines for agents, and update .opencode/opencode.json to remove it from the instructions array, consolidating agent instructions into README.md. * style: apply biome formatting and minor fixes to test files - Sort imports in test files according to biome rules - Increase timeouts in e2e tests for stability - Add NaN check in port parsing to prevent errors * style: format code with biome * docs: add unit and e2e test commands to README - Added bun unittest command for running unit tests - Added bun test:e2e command for running end-to-end tests
1 parent c555875 commit 56952cc

52 files changed

Lines changed: 1009 additions & 1106 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devenv.flake.nix

Lines changed: 513 additions & 0 deletions
Large diffs are not rendered by default.

.envrc

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
use flake
1+
#!/usr/bin/env bash
2+
3+
export DIRENV_WARN_TIMEOUT=20s
4+
5+
eval "$(devenv direnvrc)"
6+
7+
# `use devenv` supports the same options as the `devenv shell` command.
8+
#
9+
# To silence all output, use `--quiet`.
10+
#
11+
# Example usage: use devenv --quiet --impure --option services.postgres.enable:bool true
12+
use devenv

.github/workflows/ci.yml

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
quality: [test, typecheck, lint, format:check, test:e2e]
19+
quality: [test, typecheck, lint, format, test:e2e]
2020
runs-on: ubuntu-24.04
2121
steps:
2222
- name: Checkout
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup Bun
2626
uses: oven-sh/setup-bun@v2
2727
with:
28-
bun-version: 1.3.6
28+
bun-version: 1.3.8
2929

3030
- name: Cache Bun dependencies
3131
uses: actions/cache@v5
@@ -58,36 +58,34 @@ jobs:
5858
uses: actions/dependency-review-action@v4
5959

6060
nix-flake-test:
61-
strategy:
62-
fail-fast: false
63-
matrix:
64-
quality: [quality, test, test:e2e]
65-
name: Nix Flake CI
61+
name: Devenv CI
6662
runs-on: ubuntu-latest
6763
permissions:
68-
id-token: write # Required for FlakeHub cache authentication
6964
contents: read
7065
steps:
7166
- name: Checkout repository
7267
uses: actions/checkout@v6
7368
- name: Install Determinate Nix
7469
uses: DeterminateSystems/determinate-nix-action@v3
75-
- name: Enable Magic Nix Cache
76-
uses: DeterminateSystems/magic-nix-cache-action@v13
77-
with:
78-
use-flakehub: false
70+
- name: Install devenv
71+
run: nix profile add nixpkgs#devenv
7972
- name: Cache Bun dependencies
8073
uses: actions/cache@v5
8174
with:
8275
path: ~/.bun/install/cache
8376
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
8477
restore-keys: |
8578
${{ runner.os }}-bun-
86-
- name: Install dependencies (Nix devShell)
87-
run: nix develop .# --command bun ci
88-
89-
- name: Build (Nix devShell)
90-
run: nix develop .# --command bun build:prod
79+
- name: Build (Devenv shell)
80+
run: devenv shell -- bun build:prod
9181

92-
- name: Quality checks (Nix devShell)
93-
run: nix develop .# --command bun ${{matrix.quality}}
82+
- name: Quality checks (bun test)
83+
run: devenv shell -- bun unittest
84+
- name: Quality checks (typecheck)
85+
run: devenv shell -- bun typecheck
86+
- name: Quality checks (lint)
87+
run: devenv shell -- bun lint
88+
- name: Quality checks (format)
89+
run: devenv shell -- bun format
90+
- name: Quality checks (test:e2e)
91+
run: devenv shell -- bun test:e2e

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
3030
.eslintcache
3131
.cache
3232
*.tsbuildinfo
33-
.direnv
3433

3534
# IntelliJ based IDEs
3635
.idea
@@ -40,3 +39,14 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
4039

4140
# Log files
4241
*.log
42+
43+
# Devenv
44+
.devenv*
45+
devenv.local.nix
46+
devenv.local.yaml
47+
48+
# direnv
49+
.direnv
50+
51+
# pre-commit
52+
.pre-commit-config.yaml
Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,64 @@
11
---
2-
description: Analyzes recent git commits, determines version bump, and updates CHANGELOG.md following Keep a Changelog and Semantic Versioning guidelines.
2+
description: Analyzes recent git commits, curates notable user-facing changes, and updates/merges them into the [Unreleased] section of CHANGELOG.md following Keep a Changelog guidelines.
33
subtask: true
44
---
5-
6-
Follow these steps to update the CHANGELOG.md file based on recent changes in the git history.
7-
8-
First, review the key guidelines from Keep a Changelog (https://keepachangelog.com/en/1.0.0/):
9-
10-
- Use CHANGELOG.md as the file name.
11-
- Follow reverse chronological order with the latest version first.
12-
- Each version entry: [version] followed by ISO 8601 date (YYYY-MM-DD).
13-
- Include an [Unreleased] section at the top for upcoming changes.
14-
- Sections: Added (new features), Changed (existing functionality), Deprecated, Removed, Fixed (bugs), Security (vulnerabilities).
15-
- Best practices: Adhere to Semantic Versioning; keep human-readable; include release dates; make linkable; avoid empty sections; mark yanked releases.
16-
17-
Next, review Semantic Versioning 2.0.0 (https://semver.org/spec/v2.0.0.html):
18-
19-
- Version format: MAJOR.MINOR.PATCH (e.g., 1.2.3).
20-
- Pre-release: Append -alpha.1 etc.; build metadata: +001 (ignored in precedence).
21-
- Increment: MAJOR for incompatible API changes; MINOR for backward-compatible additions/deprecations; PATCH for backward-compatible bug fixes.
22-
- Version 0.y.z for unstable initial development.
23-
- Precedence: Compare MAJOR/MINOR/PATCH numerically; pre-releases lower than normal; compare pre-release identifiers lexically/numerically.
24-
25-
Now, analyze the project:
26-
27-
1. Get the current CHANGELOG.md content: @CHANGELOG.md
28-
29-
2. Identify the last released version from CHANGELOG.md or git tags: !git describe --tags --abbrev=0 || echo "0.0.0"
30-
31-
Let last_version = output of above.
32-
33-
3. Get commit messages since last version: !git log --pretty=format:"%s" ${last_version}..HEAD
34-
35-
If no commits, respond: "No changes since last version. No update needed."
36-
37-
4. Classify each commit message into categories (Added, Changed, Deprecated, Removed, Fixed, Security). Use conventional commit prefixes if present (feat: → Added, fix: → Fixed, breaking: → Changed with MAJOR bump).
38-
39-
5. Determine version bump:
40-
- MAJOR if any breaking changes.
41-
- MINOR if new features (Added) but no breaking.
42-
- PATCH if only fixes/changes without new features or breaking.
43-
- If pre-release needed, append -alpha.1 etc. (decide based on stability).
44-
45-
Compute next_version by incrementing from last_version accordingly.
46-
47-
6. Group changes under appropriate headings. Omit empty sections.
48-
49-
7. Get today's date: !date +%Y-%m-%d
50-
51-
8. Decide on release strategy:
52-
- For unreleased changes: Add or update the [Unreleased] section at the top.
53-
- For a new release: Create new section ## [next_version] - today's_date
54-
55-
Add the grouped changes to the appropriate section.
56-
57-
If [Unreleased] exists, incorporate or replace it.
58-
59-
9. Preserve existing CHANGELOG content, inserting the new section after the header or updating [Unreleased] as appropriate.
60-
61-
10. Output the full updated CHANGELOG.md content.
62-
63-
If $ARGUMENTS provided, use it as additional changes or override (e.g., /update-changelog "Added: new feature").
64-
65-
Ensure the update is accurate, concise, and follows the guidelines exactly.
5+
Follow these steps to curate and update only the [Unreleased] section of CHANGELOG.md based on recent git history.
6+
7+
Key guidelines from Keep a Changelog[](https://keepachangelog.com/en/1.1.0/):
8+
9+
- Use human-readable, curated entries — never dump raw commit messages.
10+
- Group related commits into concise, clear bullet points.
11+
- Rephrase for end-user clarity (avoid internal developer jargon).
12+
- Only include notable changes that affect users (behavior, features, UI, API, performance, security, etc.).
13+
- Standard sections: Added, Changed, Deprecated, Removed, Fixed, Security.
14+
- Omit any empty sections.
15+
- Always maintain an [Unreleased] section at the top for upcoming changes.
16+
- Do not create dated release sections or perform any version bumping.
17+
18+
Steps:
19+
20+
1. Read the current CHANGELOG.md: @CHANGELOG.md
21+
22+
2. Identify the latest released version (to know the range of new commits):
23+
!git describe --tags --abbrev=0 2>/dev/null || echo "0.0.0"
24+
Let last_version = the output (strip any leading 'v' if present).
25+
26+
3. Fetch commits since the last release (including bodies for context):
27+
!git log v${last_version}..HEAD --pretty=format:"%H%n%s%n%b%n---COMMIT_END---"
28+
29+
If no commits, respond: "No changes since last release. No changelog update needed."
30+
31+
4. Analyze the commits for user-impacting changes:
32+
- Prefer Conventional Commits prefixes as guides:
33+
- feat: or feat!: → Added (new features)
34+
- fix: → Fixed (bug fixes)
35+
- perf: → Changed (performance improvements)
36+
- docs: → Added or Changed only if user-visible
37+
- refactor:, style:, test:, chore:, ci:, build: → ignore unless they have clear user impact
38+
- Look for breaking changes (e.g., BREAKING CHANGE: footers or obvious removals) → place in Changed, Removed, or Deprecated as appropriate.
39+
- For non-conventional commits, intelligently judge based on content and user impact.
40+
- Always ignore purely internal noise: whitespace fixes, merge commits, minor refactors, test/CI additions, comment-only changes, etc.
41+
42+
5. Curate entries:
43+
- Group similar/related commits into single bullets.
44+
- Rephrase clearly and concisely for end users (e.g., "Add support for dark mode with new settings toggle" instead of raw commit titles).
45+
- Include scopes if helpful (e.g., "(API)" or "(UI)").
46+
- If $ARGUMENTS is provided, treat it as manual overrides/additions — insert the specified entries directly into the appropriate sections.
47+
48+
6. Update CHANGELOG.md:
49+
- Preserve all existing content exactly.
50+
- Ensure an [Unreleased] section exists at the top (after the main header).
51+
- Add the new curated bullets under the correct sections.
52+
- Merge thoughtfully with any existing [Unreleased] entries (avoid duplicates; combine similar items).
53+
- Omit any sections that end up empty.
54+
55+
7. Edit CHANGELOG.md with the curated updates.
56+
57+
8. Respond with a concise summary, e.g.:
58+
"Updated CHANGELOG.md [Unreleased] section:
59+
- Added: 3 new features
60+
- Fixed: 2 bugs
61+
- Changed: 1 performance improvement"
62+
63+
Do not output the full updated CHANGELOG.md content.
64+
Ensure all entries are accurate, user-focused, and strictly follow Keep a Changelog style.

.opencode/command/commit.md

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ Please perform the following steps carefully to create high-quality git commits:
1515
3. Deeply analyze the purpose, impact, and nature of all changes in the codebase, including staged, unstaged, and untracked files.
1616

1717
4. Determine the optimal commit strategy based on the analysis:
18-
- Identify logical groups of changes (e.g., by feature, bug fix, refactor, documentation). Changes should be grouped if they are cohesive and achieve a single purpose.
18+
- Identify logical groups of changes (e.g., by feature, bug fix, refactor, documentation). Changes should be grouped if they are cohesive and achieve a single purpose.
19+
- When grouping changes, prefer separating documentation-only updates (use `docs:`) from code/behavior changes.
1920
- Decide whether to:
2021
- Commit staged changes as-is if they form a complete, logical unit.
2122
- Stage additional unstaged/untracked changes that belong to the same logical group as staged changes.
@@ -25,30 +26,50 @@ Please perform the following steps carefully to create high-quality git commits:
2526
- Prioritize small, atomic commits that are easy to review and revert.
2627
- If no changes are ready or logical to commit, inform the user and suggest actions (e.g., staging specific files).
2728

28-
5. For each identified commit group:
29-
- Stage the relevant files if not already staged (using `git add <files>` or `git add -A` if appropriate).
30-
- Craft a detailed commit message that strictly follows the Conventional Commits specification (v1.0.0).
29+
5. For each identified commit group:
30+
- Stage the relevant files if not already staged (using `git add <files>` or `git add -A` if appropriate).
31+
- Craft a detailed commit message that **strictly** follows the Conventional Commits specification (v1.0.0).
3132

32-
Before writing the message, carefully read and internalize the complete specification here:
33-
https://www.conventionalcommits.org/en/v1.0.0/#specification
33+
Before writing the message, carefully read and internalize the complete specification:
34+
https://www.conventionalcommits.org/en/v1.0.0/#specification
3435

35-
Key guidelines from the spec:
36-
- Use the format: `<type>[optional scope]: <description>`
37-
- Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert (and others if justified)
38-
- Subject line: imperative tense, no capitalization, ≤50 characters
39-
- Optional body: explain **what** and **why** (not how), wrap at 72 characters
40-
- Optional footer: for BREAKING CHANGE, references to issues, etc.
36+
Key guidelines from the spec:
37+
- Format: `<type>[optional scope]: <description>`
38+
- Subject line: imperative mood (e.g. "add", "fix", "update"), **no leading capital**, ≤50–72 characters
39+
- Optional body: explain **what** changed and **why** (not how), wrap at 72 characters
40+
- Optional footer: BREAKING CHANGE notices, issue references (e.g. Closes #123), etc.
4141

42-
Analyze the project to determine its type (e.g., CLI tool, library, web app, etc.). Distinguish between changes noticeable to end-users (e.g., new features, bug fixes in user-facing behavior) and internal changes (e.g., developer tools, refactors, documentation). Use 'feat' or 'fix' only for changes that are noticeable to the end-user. For internal code changes, enhancements to development workflows, or non-user-facing improvements that benefit developers but not end-users, use types like 'chore', 'refactor', 'docs', or similar.
42+
**Recommended types and when to use them** (based on the spec and common conventions like Angular):
43+
- `feat:` – Introduces a **new feature** noticeable to **end-users** (correlates to MINOR in SemVer).
44+
- `fix:` – Patches a **bug** noticeable to **end-users** (correlates to PATCH in SemVer).
45+
- `docs:`**Documentation only** changes. Use this for:
46+
- Updates to README, CHANGELOG, CONTRIBUTING, API docs, wiki pages, etc.
47+
- Adding/fixing/updating inline code comments, docstrings, JSDoc, godoc, annotations, etc.
48+
- Improving examples, tutorials, or usage guides.
49+
- `style:` – Changes that do **not** affect code behavior (formatting, whitespace, semicolons, quotes, etc.).
50+
- `refactor:` – Code restructuring that **neither** fixes a bug **nor** adds a feature (improves readability, maintainability, no observable behavior change).
51+
- `perf:` – Performance improvements (observable speed/memory gains).
52+
- `test:` – Adding or correcting tests (no production code change).
53+
- `build:` – Changes affecting build system, external dependencies, or toolchain (npm, webpack, Docker, etc.).
54+
- `ci:` – Changes to CI/CD configuration & scripts (GitHub Actions, Travis, etc.).
55+
- `chore:` – Maintenance tasks or changes that **do not** modify src/test/docs files (e.g. .gitignore updates, script tweaks, dependency bumps with no code impact).
56+
- `revert:` – Reverts a previous commit (include footer referencing the reverted SHA).
4357

44-
Choose the most appropriate type and scope based on the changes. Make the message clear, professional, and informative for future readers (including changelogs and release notes).
58+
**Important distinctions**:
59+
- Use `docs:` (not `refactor:`) for adding/fixing comments or docstrings — they are considered documentation.
60+
- Use `docs:` only when changes are **exclusively** or **primarily** documentation-related.
61+
- Reserve `feat:` and `fix:` for changes that affect **end-user** experience or public API behavior.
62+
- For internal-only improvements (developer experience, non-user-facing), prefer `refactor:`, `chore:`, `perf:`, etc.
63+
- If multiple aspects exist, prefer **smaller, atomic commits** with one clear type each.
4564

46-
- Commit the staged changes with the crafted message using `git commit -m "<message>"` (include body and footer in the message if needed, using newlines).
65+
Analyze the project context (CLI, library, web app, etc.) to choose the most appropriate type/scope. Make messages clear, professional, and valuable for changelogs, release notes, and future readers.
66+
67+
- Commit the staged changes with the crafted message using `git commit -m "<message>"` (include body and footer in the message if needed, using newlines).
4768

4869
6. If multiple commits are needed, perform them sequentially, restaging as necessary after each commit.
4970

50-
7. After all commits, run `git status` again to confirm the repository state and summarize what was committed.
71+
7. After all commits, run `git status` again to confirm the repository state and summarize: 'Committed X changes as [type(scope)]: [short description]' for each commit.
5172

5273
8. If any changes were not committed (e.g., not ready or irrelevant), explain why and suggest next steps.
5374

54-
Prioritize accuracy, completeness, and adherence to the Conventional Commits standard. Make decisions autonomously based on best practices for clean commit history.
75+
Prioritize accuracy, completeness, and adherence to the Conventional Commits standard. Make decisions autonomously based on best practices for clean commit history.

.prettierignore

Lines changed: 0 additions & 30 deletions
This file was deleted.

.prettierrc.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ This plugin provides slash commands that can be used in OpenCode chat:
6868

6969
| Command | Description |
7070
| -------------------------- | -------------------------------------------------- |
71-
| `/pty-open-background-spy` | Get the URL of the running PTY web server instance |
71+
| `/pty-open-background-spy` | Open the PTY web server interface in the browser |
72+
| `/pty-show-server-url` | Show the URL of the running PTY web server instance |
7273

7374
## Web UI
7475

@@ -298,8 +299,12 @@ Use `pty_kill` with `cleanup=true` to remove completely.
298299
git clone https://github.com/shekohex/opencode-pty.git
299300
cd opencode-pty
300301
bun ci # install packages from bun.lock
301-
bun quality # Quality check
302+
bun lint # Runs Biome linting checks
303+
bun format # Runs Biome formatting checks
304+
bun typecheck # Runs TypeScript type checking
302305
bun build:dev # Build the React app for development
306+
bun unittest # Runs the unit tests
307+
bun test:e2e # Runs the e2e tests
303308
```
304309

305310
To load a local checkout in OpenCode:

0 commit comments

Comments
 (0)