Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
12d4b74
chore: add Node.js configuration files for Deno migration
sigmachirality Jan 20, 2026
5c5da4b
chore: update package.json for Node.js runtime
sigmachirality Jan 20, 2026
efaef28
refactor: replace Deno APIs with Node.js equivalents
sigmachirality Jan 20, 2026
d1e4073
refactor: replace jsr:@std/fmt/colors with chalk
sigmachirality Jan 20, 2026
23ee138
refactor: remove npm: prefix from imports
sigmachirality Jan 20, 2026
12b04d4
test: migrate test files from Deno.test to vitest
sigmachirality Jan 20, 2026
dc20d9d
ci: update workflows for Node.js runtime
sigmachirality Jan 20, 2026
aaa038f
chore: remove Deno configuration files
sigmachirality Jan 20, 2026
d0b6c28
refactor: update release script to use pkg instead of deno compile
sigmachirality Jan 20, 2026
6ba0621
fix: add type assertions for fetch response typing
sigmachirality Jan 20, 2026
4298386
refactor: update main entry point and error handling
sigmachirality Jan 20, 2026
ec7848e
style: apply biome formatting and import organization
sigmachirality Jan 20, 2026
c4a2b5e
style: format schema.ts with biome
sigmachirality Jan 20, 2026
9ac7924
docs: add Deno to Node.js migration plan
sigmachirality Jan 20, 2026
098a686
fix: wrap entry point in async main function
sigmachirality Jan 20, 2026
769a6cb
ci: add biome setup action to workflow
sigmachirality Jan 20, 2026
a972ee1
refactor: use pkg target names directly
sigmachirality Jan 21, 2026
805e709
docs: update README for Node.js migration
sigmachirality Jan 21, 2026
55935a9
style: remove unnecessary type stripping
sigmachirality Jan 21, 2026
4159c3a
fix: remove duplicate import and use chalk for colors in zones.tsx
sigmachirality Jan 21, 2026
136bfa9
style: address Greptile style nits
sigmachirality Jan 21, 2026
dccccc7
ci: replace setup-node with setup-bun in workflows
sigmachirality Jan 21, 2026
995098f
chore: update VSCode settings to use biome as the default formatter
sigmachirality Jan 21, 2026
c73adbf
style: run `biome check`
sigmachirality Jan 21, 2026
5aef2e9
build: upgrade from Ink v5 -> v6 and React v18 -> v19
sigmachirality Jan 21, 2026
8d3c929
build: update from biome v1 to biome v2
sigmachirality Jan 21, 2026
a697969
style: run `biome check` after upgrade
sigmachirality Jan 21, 2026
3e0c11b
build: bump deps
sigmachirality Jan 21, 2026
d22009f
style: use OAPI client instead of raw `fetch` call
sigmachirality Jan 21, 2026
c023637
fix: edit hook ordering in `OrderDisplay` to satisfy Rules of Hooks
sigmachirality Jan 21, 2026
23cf1ca
style: use OAPI client instead of raw fetch call
sigmachirality Jan 21, 2026
79d62be
style: fix more biome warnings
sigmachirality Jan 21, 2026
f7fb9d0
style: ignore deliberate non-typechecking values
sigmachirality Jan 21, 2026
86748a6
refactor: use `useEffectEvent` to explicitely handle non-exhaustive deps
sigmachirality Jan 21, 2026
c879d2b
style: remove unused `// @ts-expect-error`
sigmachirality Jan 21, 2026
ab29ac6
ci: use `vitest`
sigmachirality Jan 21, 2026
8d6db5a
chore: remove `MIGRATION_PLAN` since migration is finished
sigmachirality Jan 21, 2026
e71a09f
revert: don't use React 19 features
sigmachirality Jan 21, 2026
9a4fcc8
style: use biome-ignore on lint errors
sigmachirality Jan 21, 2026
67fbf8b
fix: remove deprecated biome option
sigmachirality Jan 21, 2026
3ba9e8b
build: use `ink-cjs` and alias `ink-cjs` to `ink@v4`
sigmachirality Jan 21, 2026
96e4fb2
fix: handle bugbot review
sigmachirality Jan 21, 2026
a12a46e
build: upgrade from `node20` to `node22`
sigmachirality Jan 21, 2026
5ff5a53
build: migrate from `deno compile` to `tsup` | `pkg` pipeline
sigmachirality Jan 21, 2026
ba835b0
build: polyfill intl segmenter to avoid SEGFAULT
sigmachirality Jan 21, 2026
79de996
style: run `biome check`
sigmachirality Jan 21, 2026
b6e81ea
fix: remove reference to non-existent react-devtools-core stub
cursoragent Jan 21, 2026
013440d
fix: typo
sigmachirality Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,14 @@ on:
branches: [main]

jobs:
# run format, lint, and test
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: denoland/setup-deno@v2
with:
deno-version-file: .tool-versions
- run: deno install
- run: deno fmt --check
- run: deno lint
- run: deno check --config deno.json .
- run: deno test --allow-all
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- uses: biomejs/setup-biome@v2
- run: bun install
- run: biome ci .
- run: bun run check
- run: bun run test
20 changes: 9 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,22 +29,20 @@ jobs:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version-file: .tool-versions
- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Check formatting
run: deno fmt --check
- name: Install dependencies
run: bun install

- name: Run linter
run: deno lint
- name: Lint
run: bun run lint

- name: Type check
run: deno check --config deno.json ./src/index.ts
run: bun run check

- name: Run tests
run: deno test --allow-all
run: bun test

- name: Configure Git
run: |
Expand All @@ -55,4 +53,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
deno run --allow-all src/scripts/release.ts ${{ inputs.version_type }}
bun run src/scripts/release.ts ${{ inputs.version_type }}
3 changes: 1 addition & 2 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
nodejs 20.19.0
deno 2.4.2
nodejs 22.22.0
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"recommendations": ["denoland.vscode-deno"]
"recommendations": ["biomejs.biome"]
}
24 changes: 15 additions & 9 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
{
"deno.enable": true,
"deno.lint": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "denoland.vscode-deno",
"[typescriptreact]": {
"editor.defaultFormatter": "denoland.vscode-deno"
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"source.fixAll.biome": "explicit"
},
"[typescript]": {
"editor.defaultFormatter": "denoland.vscode-deno"
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascript]": {
"editor.defaultFormatter": "denoland.vscode-deno"
"editor.defaultFormatter": "biomejs.biome"
},
"[javascriptreact]": {
"editor.defaultFormatter": "denoland.vscode-deno"
}
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
25 changes: 11 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,19 @@ sf --version # 0.1.0

### Setup

- Install [Deno](https://docs.deno.com/runtime/)
- `2.2.3`
- Install dependencies `deno install`
- Use same mental model as `npm install`
- Auth your CLI with `deno run prod login`
- Install [Node.js](https://nodejs.org/) (v22 or later) - used as the runtime
- Install [Bun](https://bun.sh/) - used as the package manager
- Install dependencies: `bun install`
- Auth your CLI with `bun run prod login`

### Development Loop

- Make code changes
- Test changes with
- `deno run devv` to test against local API
- `deno run prod` to test against production API
- The `deno run <env>` is an alias to the user facing `sf` command. So if you
wanted to run `sf login` locally against the local API, run
`deno run devv login`
- `bun run dev` to test against local API
- `bun run prod` to test against production API
- These are aliases to the user facing `sf` command. So if you wanted to run
`sf login` locally against the local API, run `bun run dev login`

## New Release

Expand Down Expand Up @@ -78,10 +76,9 @@ Releases are managed through GitHub Actions. To create a new release:
The workflow will:

- Run quality checks:
- Format checking with `deno fmt`
- Linting with `deno lint`
- Type checking with `deno check`
- Run all tests with `deno test --allow-all`
- Linting with `biome ci`
- Type checking with `tsc --noEmit`
- Run all tests with `vitest`
- Bump the version in package.json
- Create a new GitHub release with compiled binaries
- Push the version bump commit back to main
Expand Down
24 changes: 24 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
"assist": { "actions": { "source": { "organizeImports": "on" } } },
"formatter": {
"indentStyle": "space",
"indentWidth": 2
},
"linter": {
"enabled": true,
"rules": {
"correctness": {
"noUnusedImports": "warn"
},
"suspicious": {
"noExplicitAny": "warn"
},
"style": {
"noUselessElse": "off",
"useTemplate": "off"
},
"recommended": true
}
}
}
Loading