Skip to content

chore(main): release 1.0.0 - #6

Closed
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--supaplane
Closed

chore(main): release 1.0.0#6
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--supaplane

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🤖 I have created a release beepboop

1.0.0 (2026-07-20)

Features

  • mobile UI scaffold + desktop build wiring + dev port scheme (17687/5179) (#1) (849f8f6)
  • scaffold Electron + React + Vite project (5826f3d)
  • scaffold Electron + React + Vite project with docs (5362042)
  • web: markdown-it + pierre diffs in transcript and diff panel (#2) (4e219ab)

Bug Fixes

  • ci: build workspaces before typecheck and test jobs (#4) (6e1bc69)
  • ci: seed release-please manifest so the action stops failing on main (#5) (1151b4b)

This PR was generated with Release Please. See documentation.

@johnnyhuy
johnnyhuy deleted the release-please--branches--main--components--supaplane branch July 20, 2026 12:07
johnnyhuy added a commit that referenced this pull request Jul 20, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 5, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent <hello@sst.dev>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent <hello@sst.dev>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode <opencode@echohello.dev>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode <opencode@echohello.dev>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
---------
Co-authored-by: opencode <opencode@echohello.dev>
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
---------
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(app): scaffold mobile UI for connect/sessions/transcript
Adds the three-screen MVP on top of @echohello/client:
- connect: manual ws:// endpoint + label, saved to AsyncStorage,
connects via SupaplaneClient
- sessions: workspace list grouped by freshness, tap to drill in
- session: transcript + composer (send/abort/start) bound to
ClientCommand wire types
Shared infrastructure:
- zustand connection-store: single SupaplaneClient instance,
status, workspaces, sessions, per-session event buffer
- AsyncStorage wrapper (v3 API: setMany/removeMany) for the
saved endpoint and TOFU-pinned server fingerprint
- dark theme tokens, Button, TextField, ConnectionBanner
Bundler plumbing: metro.config.cjs with explicit watchFolders
and nodeModulesPaths so Bun's hoisting doesn't trip the
resolver on a monorepo root.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(dev): wire desktop build + shift dev ports off 6767/5173
Desktop build wiring:
- packages/desktop/tsconfig.build.json emits ESM to dist/
- packages/desktop/package.json: dev now runs tsc -> electron
- main.js (dist) replaces main.ts as the package entry, and
preload.js resolves to the dist sibling
- @echohello/server and @echohello/protocol exports point at
dist/ so Electron's Node can resolve them. Run
'bun run build:server' (or 'bun run build') before
'desktop dev'.
Dev port scheme (avoiding Paseo + Vite + Metro defaults):
- Daemon listenPort: 6767 -> 17687 (IANA-sparse range,
visually echoes 6767)
- Vite port: 5173 -> 5179 (adjacent to Vite default so it
reads as 'the Supaplane Vite port')
- vite.config.ts reads SUPAPLANE_DAEMON_PORT and VITE_PORT
envs; defaults updated
- AGENTS.md + docs/development.md updated to reflect the
new ports
Server hygiene:
- daemon-keypair.ts: replace require('node:crypto') with
a top-level import so it builds cleanly to ESM
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* fix(ci): seed release-please manifest so the action stops failing
release-please-action@v4 requires .release-please-manifest.json (or the
deprecated release-please-config.json versions field) on first run.
Without it the action exits non-zero on every push to main, masking
real failures with a 'Missing required manifest versions' error.
Seed it at "0.0.0" so the next conventional commit produces a real
release PR.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
* chore(release): drop release-please, use calver only
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
---------
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
release-please bumped straight from 0.0.0 to 1.0.0 on the first
conventional-commit push to main (release-please seeds 1.0.0 on the
debut release). That's the wrong starting line for Supaplane — we want
calver tags on every push to main, not semver release PRs.
Removed:
- .github/workflows/release-please.yml
- release-please-config.json
- .release-please-manifest.json
Closed release-please's first PR (#6) and deleted its branch
(release-please--branches--main--components--supaplane) so the action
has nothing to point at when its trigger fires.
Kept calver-release.yml and the 2026.07.20 / -2 / -3 tags that it
produced. Updated README.md and AGENTS.md to reflect that calver is now
the sole release surface.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@johnnyhuy