fix(docker): resolve container networking and DB compatibility issues (#560)

- Auto-detect Docker container environment and use service name
  'hermes-agent' as default host instead of 127.0.0.1
- Replace hardcoded column names with SELECT * in session DB queries
  to compat with older Hermes agent state.db schemas
- Remove unused UPSTREAM env var from docker-compose.yml
- Include err.message in syncFromHermes failure logs
- Add group chat rule to prevent self-mentioning

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-05-09 11:37:26 +08:00
committed by GitHub
parent 448f780568
commit c3738cf1c3
5 changed files with 11 additions and 58 deletions
+4 -53
View File
@@ -598,11 +598,7 @@ export async function getSessionMessagesFromDb(sessionId: string): Promise<{
`).get(sessionId) as Record<string, unknown> | undefined
const messageRows = db.prepare(`
SELECT
id, session_id, role, content, tool_call_id, tool_calls, tool_name,
timestamp, token_count, finish_reason, reasoning, reasoning_details,
codex_reasoning_items, reasoning_content
FROM messages
SELECT * FROM messages
WHERE session_id = ?
ORDER BY timestamp, id
`).all(sessionId) as Record<string, unknown>[]
@@ -629,22 +625,7 @@ export async function getSessionDetailFromDb(sessionId: string): Promise<HermesS
const ids = chain.map(session => session.id)
const placeholders = ids.map(() => '?').join(', ')
const messageRows = db.prepare(`
SELECT
id,
session_id,
role,
content,
tool_call_id,
tool_calls,
tool_name,
timestamp,
token_count,
finish_reason,
reasoning,
reasoning_details,
codex_reasoning_items,
reasoning_content
FROM messages
SELECT * FROM messages
WHERE session_id IN (${placeholders})
ORDER BY timestamp, id
`).all(...ids) as Record<string, unknown>[]
@@ -670,22 +651,7 @@ export async function getSessionDetailFromDbWithProfile(sessionId: string, profi
const ids = chain.map(session => session.id)
const placeholders = ids.map(() => '?').join(', ')
const messageRows = db.prepare(`
SELECT
id,
session_id,
role,
content,
tool_call_id,
tool_calls,
tool_name,
timestamp,
token_count,
finish_reason,
reasoning,
reasoning_details,
codex_reasoning_items,
reasoning_content
FROM messages
SELECT * FROM messages
WHERE session_id IN (${placeholders})
ORDER BY timestamp, id
`).all(...ids) as Record<string, unknown>[]
@@ -706,22 +672,7 @@ export async function getExactSessionDetailFromDbWithProfile(sessionId: string,
if (!requested) return null
const messageRows = db.prepare(`
SELECT
id,
session_id,
role,
content,
tool_call_id,
tool_calls,
tool_name,
timestamp,
token_count,
finish_reason,
reasoning,
reasoning_details,
codex_reasoning_items,
reasoning_content
FROM messages
SELECT * FROM messages
WHERE session_id = ?
ORDER BY timestamp, id
`).all(sessionId) as Record<string, unknown>[]