Uh oh!
There was an error while loading. Please reload this page.
fix(ci): seed release-please manifest so the action stops failing on main - #5
Merged
Conversation
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>
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>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>
Uh oh!
There was an error while loading. Please reload this page.
johnnyhuy added a commit
that referenced
this pull request
Aug 9, 2026
…main (#5) * 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> --------- 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
…main (#5) * 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> --------- 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
…main (#5) * 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> --------- 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
…main (#5) * 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> --------- 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>
This was referenced Aug 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consequences
Testing
Local:
✓ lint (0 errors)
✓ format (manifest formatted)
CI on this PR will confirm the release-please action stops erroring.