fix: address CodeRabbit review on PR #1569
Critical: - migrations: change version 8 → 25 to avoid collision with MigrationRunner.addObservationHierarchicalFields (uses version 8) - SessionRoutes: remove duplicate imports that prevent compilation Major: - SessionRoutes: call applyTierRouting() before every generator spawn (stale-recovery and crash-recovery paths were missing it) - applyTierRouting: clear session.modelOverride at top before re-evaluating to prevent stale tier from persisting across spawns Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
Alex Newman
parent
0fcc078873
commit
42cc863bf2
@@ -519,7 +519,7 @@ export const migration007: Migration = {
|
|||||||
* explicit retrieval). Foundation for future Thompson Sampling optimization.
|
* explicit retrieval). Foundation for future Thompson Sampling optimization.
|
||||||
*/
|
*/
|
||||||
export const migration008: Migration = {
|
export const migration008: Migration = {
|
||||||
version: 8,
|
version: 25,
|
||||||
up: (db: Database) => {
|
up: (db: Database) => {
|
||||||
db.run(`
|
db.run(`
|
||||||
CREATE TABLE IF NOT EXISTS observation_feedback (
|
CREATE TABLE IF NOT EXISTS observation_feedback (
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ import type { WorkerService } from '../../../worker-service.js';
|
|||||||
import { BaseRouteHandler } from '../BaseRouteHandler.js';
|
import { BaseRouteHandler } from '../BaseRouteHandler.js';
|
||||||
import { SessionEventBroadcaster } from '../../events/SessionEventBroadcaster.js';
|
import { SessionEventBroadcaster } from '../../events/SessionEventBroadcaster.js';
|
||||||
import { SessionCompletionHandler } from '../../session/SessionCompletionHandler.js';
|
import { SessionCompletionHandler } from '../../session/SessionCompletionHandler.js';
|
||||||
import { SettingsDefaultsManager } from '../../../../shared/SettingsDefaultsManager.js';
|
|
||||||
import { USER_SETTINGS_PATH } from '../../../../shared/paths.js';
|
|
||||||
import { PrivacyCheckValidator } from '../../validation/PrivacyCheckValidator.js';
|
import { PrivacyCheckValidator } from '../../validation/PrivacyCheckValidator.js';
|
||||||
import { SettingsDefaultsManager } from '../../../../shared/SettingsDefaultsManager.js';
|
import { SettingsDefaultsManager } from '../../../../shared/SettingsDefaultsManager.js';
|
||||||
import { USER_SETTINGS_PATH } from '../../../../shared/paths.js';
|
import { USER_SETTINGS_PATH } from '../../../../shared/paths.js';
|
||||||
@@ -130,6 +128,7 @@ export class SessionRoutes extends BaseRouteHandler {
|
|||||||
session.abortController = new AbortController();
|
session.abortController = new AbortController();
|
||||||
session.lastGeneratorActivity = Date.now();
|
session.lastGeneratorActivity = Date.now();
|
||||||
// Start a fresh generator
|
// Start a fresh generator
|
||||||
|
this.applyTierRouting(session);
|
||||||
this.spawnInProgress.set(sessionDbId, true);
|
this.spawnInProgress.set(sessionDbId, true);
|
||||||
this.startGeneratorWithProvider(session, selectedProvider, 'stale-recovery');
|
this.startGeneratorWithProvider(session, selectedProvider, 'stale-recovery');
|
||||||
return;
|
return;
|
||||||
@@ -287,6 +286,7 @@ export class SessionRoutes extends BaseRouteHandler {
|
|||||||
this.crashRecoveryScheduled.delete(sessionDbId);
|
this.crashRecoveryScheduled.delete(sessionDbId);
|
||||||
const stillExists = this.sessionManager.getSession(sessionDbId);
|
const stillExists = this.sessionManager.getSession(sessionDbId);
|
||||||
if (stillExists && !stillExists.generatorPromise) {
|
if (stillExists && !stillExists.generatorPromise) {
|
||||||
|
this.applyTierRouting(stillExists);
|
||||||
this.startGeneratorWithProvider(stillExists, this.getSelectedProvider(), 'crash-recovery');
|
this.startGeneratorWithProvider(stillExists, this.getSelectedProvider(), 'crash-recovery');
|
||||||
}
|
}
|
||||||
}, backoffMs);
|
}, backoffMs);
|
||||||
@@ -836,6 +836,10 @@ export class SessionRoutes extends BaseRouteHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clear stale override before re-evaluating — prevents previous tier
|
||||||
|
// from persisting when queue composition changes between spawns.
|
||||||
|
session.modelOverride = undefined;
|
||||||
|
|
||||||
const pendingStore = this.sessionManager.getPendingMessageStore();
|
const pendingStore = this.sessionManager.getPendingMessageStore();
|
||||||
const pending = pendingStore.peekPendingTypes(session.sessionDbId);
|
const pending = pendingStore.peekPendingTypes(session.sessionDbId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user