dual-brain 7.1.2 → 7.1.3

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.
@@ -734,13 +734,11 @@ async function dashboardScreen(rl, ask) {
734
734
  }
735
735
 
736
736
  console.log(menu([
737
- { key: 'g', label: 'Godispatch a task', section: 'Actions' },
738
- { key: 's', label: 'Status — detailed provider info', section: 'Actions' },
737
+ { key: 's', label: 'Statusdetailed provider info', section: 'Info' },
739
738
  { key: 'p', label: 'Profile & preferences', section: 'Settings' },
740
739
  { key: 'a', label: 'Auth management', section: 'Settings' },
741
- { key: 'd', label: 'Diagnostics', section: 'Settings' },
742
- { key: 'c', label: 'Command mode (REPL)', section: 'Session' },
743
- { key: 'q', label: 'Exit', section: 'Session' },
740
+ { key: 'd', label: 'Diagnostics & repair', section: 'Settings' },
741
+ { key: 'q', label: 'Exit to shell', section: '' },
744
742
  ]));
745
743
  console.log('');
746
744
 
@@ -752,18 +750,6 @@ async function dashboardScreen(rl, ask) {
752
750
  return { next: 'session-detail', session: recentSessions[numChoice - 1] };
753
751
  }
754
752
 
755
- if (choice === 'g') {
756
- const taskDesc = (await ask(' Task description: ')).trim();
757
- if (taskDesc) {
758
- try {
759
- await cmdGo([taskDesc]);
760
- } catch (e) {
761
- console.error(`Error: ${e.message}`);
762
- }
763
- }
764
- return { next: 'dashboard' };
765
- }
766
-
767
753
  if (choice === 's') {
768
754
  await cmdStatus([]);
769
755
  await ask('\n Press Enter to return to dashboard...');
@@ -773,7 +759,6 @@ async function dashboardScreen(rl, ask) {
773
759
  if (choice === 'p') { return { next: 'profile' }; }
774
760
  if (choice === 'a') { return { next: 'auth' }; }
775
761
  if (choice === 'd') { return { next: 'diagnostics' }; }
776
- if (choice === 'c') { return { next: 'repl' }; }
777
762
  if (choice === 'q' || choice === 'exit') { return { next: 'exit' }; }
778
763
 
779
764
  // Unknown choice — stay on dashboard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dual-brain",
3
- "version": "7.1.2",
3
+ "version": "7.1.3",
4
4
  "description": "AI orchestration across Claude + OpenAI subscriptions — smart routing, budget awareness, and dual-brain collaboration",
5
5
  "type": "module",
6
6
  "bin": {
package/src/session.mjs CHANGED
@@ -229,11 +229,32 @@ function timeAgo(timestamp) {
229
229
  */
230
230
  export function importReplitSessions(cwd = process.cwd()) {
231
231
  const sessions = [];
232
- const replitBase = join(cwd, '.replit-tools', '.claude-persistent');
232
+
233
+ // Check multiple possible locations for replit-tools
234
+ const candidates = [
235
+ join(cwd, '.replit-tools', '.claude-persistent'),
236
+ join('/home/runner/workspace', '.replit-tools', '.claude-persistent'),
237
+ ];
238
+ // Deduplicate
239
+ const seen = new Set();
240
+ const replitBases = candidates.filter(p => {
241
+ const norm = p.replace(/\/+$/, '');
242
+ if (seen.has(norm)) return false;
243
+ seen.add(norm);
244
+ return true;
245
+ });
246
+
247
+ let replitBase = null;
248
+ for (const candidate of replitBases) {
249
+ if (existsSync(join(candidate, 'history.jsonl'))) {
250
+ replitBase = candidate;
251
+ break;
252
+ }
253
+ }
254
+ if (!replitBase) return sessions;
233
255
 
234
256
  // Read history.jsonl
235
257
  const historyPath = join(replitBase, 'history.jsonl');
236
- if (!existsSync(historyPath)) return sessions;
237
258
 
238
259
  let lines;
239
260
  try {
@@ -272,7 +293,9 @@ export function importReplitSessions(cwd = process.cwd()) {
272
293
  }
273
294
 
274
295
  // Read active terminal sessions
275
- const sessionsDir = join(cwd, '.replit-tools', '.claude-sessions');
296
+ // Use the same root as replitBase (go up one level from .claude-persistent)
297
+ const replitRoot = join(replitBase, '..');
298
+ const sessionsDir = join(replitRoot, '..', '.claude-sessions');
276
299
  const activeSessionIds = new Set();
277
300
  if (existsSync(sessionsDir)) {
278
301
  try {