vibe-coding-master 0.3.30 → 0.3.32

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.
@@ -44,6 +44,7 @@ export function createNodePtyTerminalRuntime(deps) {
44
44
  process: child,
45
45
  listeners: new Set(),
46
46
  logWriter,
47
+ replayBuffer: "",
47
48
  disposed: false
48
49
  };
49
50
  entries.set(session.id, entry);
@@ -52,6 +53,7 @@ export function createNodePtyTerminalRuntime(deps) {
52
53
  return;
53
54
  }
54
55
  entry.session.lastOutputAt = now();
56
+ entry.replayBuffer = appendTerminalReplay(entry.replayBuffer, data);
55
57
  entry.logWriter.append(data);
56
58
  emit(entry, {
57
59
  sessionId: session.id,
@@ -138,7 +140,18 @@ export function createNodePtyTerminalRuntime(deps) {
138
140
  subscribe(sessionId, listener, options = {}) {
139
141
  const entry = getEntry(entries, sessionId);
140
142
  entry.listeners.add(listener);
141
- if (options.replay !== false && entry.input.logPath) {
143
+ if (options.replay !== false && entry.replayBuffer) {
144
+ listener({
145
+ id: `evt_${Date.now()}_${Math.random().toString(16).slice(2)}`,
146
+ sessionId,
147
+ taskSlug: entry.session.taskSlug,
148
+ role: entry.session.role,
149
+ type: "output",
150
+ timestamp: now(),
151
+ data: entry.replayBuffer
152
+ });
153
+ }
154
+ else if (options.replay !== false && entry.input.logPath) {
142
155
  void readTerminalReplayText(deps.fs, entry.input.logPath)
143
156
  .then((data) => {
144
157
  if (!data || !entry.listeners.has(listener)) {
@@ -228,6 +241,12 @@ export function tailTerminalReplay(data, limitBytes = TERMINAL_REPLAY_TAIL_LIMIT
228
241
  const firstLineBreak = tail.indexOf("\n");
229
242
  return firstLineBreak >= 0 ? tail.slice(firstLineBreak + 1) : tail;
230
243
  }
244
+ export function appendTerminalReplay(current, data, limitBytes = TERMINAL_REPLAY_TAIL_LIMIT_BYTES) {
245
+ if (!data) {
246
+ return current;
247
+ }
248
+ return tailTerminalReplay(`${current}${data}`, limitBytes);
249
+ }
231
250
  export function buildPtyEnvironment(baseEnv, inputEnv = {}) {
232
251
  const env = {
233
252
  ...baseEnv,
@@ -191,7 +191,7 @@ export function createSessionService(deps) {
191
191
  const persisted = await loadPersistedTranslatorSession(deps.fs, repoRoot);
192
192
  const permissionMode = normalizeClaudePermissionMode(input.permissionMode ?? persisted?.permissionMode);
193
193
  const model = normalizeClaudeModel(input.model ?? persisted?.model);
194
- const effort = normalizeClaudeEffort(input.effort ?? persisted?.effort);
194
+ const effort = normalizeClaudeEffort(input.effort ?? persisted?.effort ?? "medium");
195
195
  const claudeSessionId = launchMode === "resume"
196
196
  ? persisted?.claudeSessionId
197
197
  : randomUUID();
@@ -365,6 +365,7 @@ export function createSessionService(deps) {
365
365
  }
366
366
  if (existing?.claudeSessionId) {
367
367
  return this.resumeProjectTranslatorSession(repoRoot, {
368
+ permissionMode: input.permissionMode ?? existing.permissionMode,
368
369
  model: input.model ?? existing.model,
369
370
  effort: input.effort ?? existing.effort,
370
371
  cols: input.cols,