wired in project isolation
This commit is contained in:
@@ -102,26 +102,21 @@ async function chat(externalId, userMessage, options = {}) {
|
|||||||
let session = await memory.getSessionByExternalId(externalId);
|
let session = await memory.getSessionByExternalId(externalId);
|
||||||
if (!session) session = await memory.createSession(externalId);
|
if (!session) session = await memory.createSession(externalId);
|
||||||
|
|
||||||
let projectSessionIds = null;
|
let projectSessionIds = null;
|
||||||
if (session.project_id) {
|
if (session.project_id) {
|
||||||
try {
|
try {
|
||||||
const project = await memory.getProject(session.project_id);
|
console.log('[orchestration] Resolving isolation for project:', session.project_id);
|
||||||
if (project?.isolated === 1) {
|
const project = await memory.getProject(session.project_id);
|
||||||
const projectSessions = await memory.getProjectSessions(
|
console.log('[orchestration] Project resolved:', project);
|
||||||
session.project_id,
|
if (project?.isolated === 1) {
|
||||||
);
|
const projectSessions = await memory.getProjectSessions(session.project_id);
|
||||||
projectSessionIds = projectSessions.map((s) => s.id);
|
console.log('[orchestration] Project sessions:', projectSessions);
|
||||||
console.log(
|
projectSessionIds = projectSessions.map(s => s.id);
|
||||||
`[orchestration] Isolated project ${session.project_id} — restricting search to ${projectSessionIds.length} sessions`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.warn(
|
|
||||||
"[orchestration] Failed to resolve isolation context:",
|
|
||||||
err.message,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('[orchestration] Failed to resolve isolation context:', err.message);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 2. Fetch recent episodes for context
|
// 2. Fetch recent episodes for context
|
||||||
const recentEpisodes = await memory.getRecentEpisodes(
|
const recentEpisodes = await memory.getRecentEpisodes(
|
||||||
@@ -172,6 +167,10 @@ async function chat(externalId, userMessage, options = {}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function chatStream(externalId, userMessage, onChunk, options = {}) {
|
async function chatStream(externalId, userMessage, onChunk, options = {}) {
|
||||||
|
|
||||||
|
console.log('[orchestration] chatStream entry');
|
||||||
|
try {
|
||||||
|
|
||||||
console.log("[orchestration] chatStream called:", {
|
console.log("[orchestration] chatStream called:", {
|
||||||
externalId,
|
externalId,
|
||||||
userMessage: userMessage.slice(0, 50),
|
userMessage: userMessage.slice(0, 50),
|
||||||
@@ -179,26 +178,21 @@ async function chatStream(externalId, userMessage, onChunk, options = {}) {
|
|||||||
let session = await memory.getSessionByExternalId(externalId);
|
let session = await memory.getSessionByExternalId(externalId);
|
||||||
if (!session) session = await memory.createSession(externalId);
|
if (!session) session = await memory.createSession(externalId);
|
||||||
|
|
||||||
let projectSessionIds = null;
|
let projectSessionIds = null;
|
||||||
if (session.project_id) {
|
if (session.project_id) {
|
||||||
try {
|
try {
|
||||||
const project = await memory.getProject(session.project_id);
|
console.log('[orchestration] Resolving isolation for project:', session.project_id);
|
||||||
if (project?.isolated === 1) {
|
const project = await memory.getProject(session.project_id);
|
||||||
const projectSessions = await memory.getProjectSessions(
|
console.log('[orchestration] Project resolved:', project);
|
||||||
session.project_id,
|
if (project?.isolated === 1) {
|
||||||
);
|
const projectSessions = await memory.getProjectSessions(session.project_id);
|
||||||
projectSessionIds = projectSessions.map((s) => s.id);
|
console.log('[orchestration] Project sessions:', projectSessions);
|
||||||
console.log(
|
projectSessionIds = projectSessions.map(s => s.id);
|
||||||
`[orchestration] Isolated project ${session.project_id} — restricting search to ${projectSessionIds.length} sessions`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.warn(
|
|
||||||
"[orchestration] Failed to resolve isolation context:",
|
|
||||||
err.message,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('[orchestration] Failed to resolve isolation context:', err.message);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const recentEpisodes = await memory.getRecentEpisodes(
|
const recentEpisodes = await memory.getRecentEpisodes(
|
||||||
session.id,
|
session.id,
|
||||||
@@ -279,5 +273,10 @@ async function chatStream(externalId, userMessage, onChunk, options = {}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return { model, tokenCount };
|
return { model, tokenCount };
|
||||||
|
} catch (err) {
|
||||||
|
console.error('[orchestration] chatStream fatal error:', err.message, err.stack);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { chat, chatStream };
|
module.exports = { chat, chatStream };
|
||||||
|
|||||||
Reference in New Issue
Block a user