codeep 1.0.118 → 1.0.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/app.js CHANGED
@@ -163,12 +163,20 @@ export const App = () => {
163
163
  return () => clearTimeout(timer);
164
164
  }
165
165
  }, [notification, notificationDuration]);
166
- // Clear screen when switching to fullscreen views (non-chat screens)
167
- // This ensures fullscreen components render from top, not below existing content
166
+ // Use alternate screen buffer for fullscreen views (non-chat screens)
167
+ // This prevents ghost content while keeping chat scrollable in normal buffer
168
168
  useEffect(() => {
169
- if (screen !== 'chat') {
170
- stdout?.write('\x1b[2J\x1b[H');
169
+ const isFullscreen = screen !== 'chat' && screen !== 'login' && screen !== 'permission' && screen !== 'session-picker';
170
+ if (isFullscreen) {
171
+ // Enter alternate buffer
172
+ stdout?.write('\x1b[?1049h\x1b[H');
171
173
  }
174
+ return () => {
175
+ if (isFullscreen) {
176
+ // Exit alternate buffer when leaving fullscreen view
177
+ stdout?.write('\x1b[?1049l');
178
+ }
179
+ };
172
180
  }, [screen, stdout]);
173
181
  // Handle keyboard shortcuts
174
182
  useInput((input, key) => {
@@ -1312,10 +1320,10 @@ export const App = () => {
1312
1320
  return (_jsx(ProjectPermission, { projectPath: projectPath, onComplete: handlePermissionComplete }));
1313
1321
  }
1314
1322
  if (screen === 'help') {
1315
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Help, {}), _jsx(Text, { children: "Press Escape to close" })] }, "help-screen"));
1323
+ return (_jsxs(Box, { flexDirection: "column", height: stdout?.rows || 24, children: [_jsx(Help, {}), _jsx(Text, { children: "Press Escape to close" })] }, "help-screen"));
1316
1324
  }
1317
1325
  if (screen === 'status') {
1318
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Status, {}), _jsx(Text, { children: "Press Escape to close" })] }, "status-screen"));
1326
+ return (_jsxs(Box, { flexDirection: "column", height: stdout?.rows || 24, children: [_jsx(Status, {}), _jsx(Text, { children: "Press Escape to close" })] }, "status-screen"));
1319
1327
  }
1320
1328
  if (screen === 'session-picker') {
1321
1329
  return (_jsx(SessionPicker, { projectPath: projectPath, onSelect: (loadedMessages, sessionName) => {
@@ -1356,7 +1364,7 @@ export const App = () => {
1356
1364
  }, onCancel: () => setScreen('chat') }));
1357
1365
  }
1358
1366
  if (screen === 'settings') {
1359
- return (_jsx(Settings, { onClose: () => setScreen('chat'), notify: notify, hasWriteAccess: hasWriteAccess, hasProjectContext: !!projectContext }));
1367
+ return (_jsx(Box, { flexDirection: "column", height: stdout?.rows || 24, children: _jsx(Settings, { onClose: () => setScreen('chat'), notify: notify, hasWriteAccess: hasWriteAccess, hasProjectContext: !!projectContext }) }, "settings-screen"));
1360
1368
  }
1361
1369
  if (screen === 'search') {
1362
1370
  return (_jsx(Search, { results: searchResults, searchTerm: searchTerm, onClose: () => setScreen('chat'), onSelectMessage: (index) => {
package/dist/index.js CHANGED
@@ -32,34 +32,7 @@ Contact: info@codeep.dev
32
32
  `);
33
33
  process.exit(0);
34
34
  }
35
- // Enter alternate screen buffer (like vim, less, htop)
36
- // This isolates the app from terminal scroll history
37
- // Eliminates ghost content and jumping issues
38
- process.stdout.write('\x1b[?1049h'); // Enter alternate buffer
39
- process.stdout.write('\x1b[H'); // Move cursor to top-left
40
- // Exit alternate buffer on app exit
41
- const exitAlternateBuffer = () => {
42
- process.stdout.write('\x1b[?1049l'); // Exit alternate buffer
43
- };
44
- // Handle various exit scenarios
45
- process.on('exit', exitAlternateBuffer);
46
- process.on('SIGINT', () => {
47
- exitAlternateBuffer();
48
- process.exit(0);
49
- });
50
- process.on('SIGTERM', () => {
51
- exitAlternateBuffer();
52
- process.exit(0);
53
- });
54
- // Also handle uncaught exceptions to ensure clean exit
55
- process.on('uncaughtException', (err) => {
56
- exitAlternateBuffer();
57
- console.error('Uncaught Exception:', err);
58
- process.exit(1);
59
- });
35
+ // Clear screen on start
36
+ console.clear();
60
37
  // Render app
61
- const { unmount, waitUntilExit } = render(_jsx(App, {}));
62
- // Ensure alternate buffer is exited when Ink unmounts
63
- waitUntilExit().then(() => {
64
- exitAlternateBuffer();
65
- });
38
+ render(_jsx(App, {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeep",
3
- "version": "1.0.118",
3
+ "version": "1.0.120",
4
4
  "description": "AI-powered coding assistant built for the terminal. Multiple LLM providers, project-aware context, and a seamless development workflow.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",