docs(teleporter): fix chat resume command typo in TELEPORTATION.md

This commit is contained in:
Sehoon Shon
2026-02-24 17:18:37 -05:00
parent b0b6ebf574
commit 126342c969
3 changed files with 27 additions and 19 deletions
+4
View File
@@ -53,6 +53,10 @@ export default tseslint.config(
'.gemini/skills/**', '.gemini/skills/**',
'**/*.d.ts', '**/*.d.ts',
'packages/core/src/teleportation/trajectory_teleporter.min.js', 'packages/core/src/teleportation/trajectory_teleporter.min.js',
'old_teleporter.js',
'test_file_tmp.js',
'test_pb.js',
'packages/core/test_ws.ts',
], ],
}, },
eslint.configs.recommended, eslint.configs.recommended,
@@ -27,6 +27,12 @@ dedicated teleporter bundle:
- **Process**: The binary `.pb` file is read into a Buffer and passed to the - **Process**: The binary `.pb` file is read into a Buffer and passed to the
teleporter's `trajectoryToJson` function, which outputs a standard JavaScript teleporter's `trajectoryToJson` function, which outputs a standard JavaScript
object. object.
- **Generation**: To ensure the CLI stays in sync with Jetski's protobuf schema
(`cortex.proto`), this bundle isn't written entirely by hand. It is
auto-generated by compiling the latest schema via `esbuild`. You can rebuild
it anytime by running `npm run build:teleporter` from the CLI root. _(See
[How to Regenerate the Bundle](#how-to-regenerate-the-bundle) for exact
steps)._
## 3. Workspace Identification ## 3. Workspace Identification
@@ -135,8 +141,7 @@ is skipped. This includes:
Once converted: Once converted:
1. The record is injected into the CLI's `ChatRecordingService`. 1. The record is injected into the CLI's `ChatRecordingService`.
2. Users can continue the conversation seamlessly via the `/chat resume` 2. Users can continue the conversation seamlessly via the `/resume` command.
command.
## Maintenance & Updates ## Maintenance & Updates
@@ -200,9 +205,9 @@ addressed:
### 3. User Experience (UX) ### 3. User Experience (UX)
- **Clear UI Indicators:** In the CLI's `/chat resume` menu, Jetski sessions - **Clear UI Indicators:** In the CLI's `/resume` menu, Jetski sessions should
should be visually distinct from native CLI sessions (e.g., using a 🛸 icon be visually distinct from native CLI sessions (e.g., using a 🛸 icon and a
and a "Jetski" tag next to the session name). "Jetski" tag next to the session name).
- **Missing Context Warnings:** Because we intentionally drop 75+ step types - **Missing Context Warnings:** Because we intentionally drop 75+ step types
(browser actions, IDE UI clicks, etc.), the CLI conversation history might (browser actions, IDE UI clicks, etc.), the CLI conversation history might
look like it has "gaps." The UI should render a small placeholder like: look like it has "gaps." The UI should render a small placeholder like:
@@ -226,10 +231,10 @@ addressed:
### 5. Performance ### 5. Performance
- **Lazy Loading / Streaming:** When populating the list of sessions for - **Lazy Loading / Streaming:** When populating the list of sessions for
`/chat resume`, the CLI shouldnt decrypt and parse the _entire_ history of `/resume`, the CLI shouldnt decrypt and parse the _entire_ history of every
every file. It should only read the `metadata` headers to render the UI file. It should only read the `metadata` headers to render the UI picker, and
picker, and only parse the full multi-megabyte `ConversationRecord` when a only parse the full multi-megabyte `ConversationRecord` when a specific
specific session is selected. session is selected.
- **Memory Limits:** Set an upper limit on how many historical tool turns the - **Memory Limits:** Set an upper limit on how many historical tool turns the
CLI loads into memory when teleporting to avoid OOM (Out of Memory) crashes in CLI loads into memory when teleporting to avoid OOM (Out of Memory) crashes in
Node.js. Node.js.
+9 -10
View File
@@ -24,15 +24,17 @@ import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url)); const __dirname = dirname(fileURLToPath(import.meta.url));
const root = join(__dirname, '..'); const root = join(__dirname, '..');
// remove npm install/build artifacts const RMRF_OPTIONS = {
rmSync(join(root, 'node_modules'), { recursive: true, force: true });
rmSync(join(root, 'bundle'), { recursive: true, force: true });
rmSync(join(root, 'packages/cli/src/generated/'), {
recursive: true, recursive: true,
force: true, force: true,
}); maxRetries: 10,
const RMRF_OPTIONS = { recursive: true, force: true }; retryDelay: 100,
};
// remove npm install/build artifacts
rmSync(join(root, 'node_modules'), RMRF_OPTIONS);
rmSync(join(root, 'bundle'), RMRF_OPTIONS); rmSync(join(root, 'bundle'), RMRF_OPTIONS);
rmSync(join(root, 'packages/cli/src/generated/'), RMRF_OPTIONS);
// Dynamically clean dist directories in all workspaces // Dynamically clean dist directories in all workspaces
const rootPackageJson = JSON.parse( const rootPackageJson = JSON.parse(
readFileSync(join(root, 'package.json'), 'utf-8'), readFileSync(join(root, 'package.json'), 'utf-8'),
@@ -57,10 +59,7 @@ for (const workspace of rootPackageJson.workspaces) {
} }
// Clean up vscode-ide-companion package // Clean up vscode-ide-companion package
rmSync(join(root, 'packages/vscode-ide-companion/node_modules'), { rmSync(join(root, 'packages/vscode-ide-companion/node_modules'), RMRF_OPTIONS);
recursive: true,
force: true,
});
const vscodeCompanionDir = join(root, 'packages/vscode-ide-companion'); const vscodeCompanionDir = join(root, 'packages/vscode-ide-companion');
try { try {