fix: event-loop freezes, plugin-install boot crash, tmux attach/scrollbar, Codex transcripts

- GET /api/workflows: one LEAD() window pass in a read worker (read-pool.js,
  workflow-stats.js); idx_events_session restored, idx_events_tool added
- compat-sqlite gains function/pluck/readonly so a plugin install without a
  better-sqlite3 build boots again; antigravity-usage uses db.js's Database
- install-hooks adds no checkout hooks while the agenthub plugin is enabled
  (events were doubled)
- terminal attach runs the live tmux server's own binary; the pane scrollbar
  gets a visible 2-column style, and claude panes start with
  CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 so tmux keeps history to scroll
- Codex sessions' conversation in GET /api/sessions/:id/transcript
- Codex/Antigravity sessions claimed by their workspace without hooks
- UI-audit follow-ups, docs and OpenAPI
This commit is contained in:
2026-10-05 17:01:05 +07:00
parent 442f133930
commit 198fbb7980
78 changed files with 2716 additions and 873 deletions
+4
View File
@@ -557,6 +557,9 @@ function startBackgroundServices() {
} catch (err) {
console.warn("codex poll failed to start:", err.message);
}
// A Codex/Antigravity session imported before it could be tied to the
// workspace pane it ran in gets that workspace now (dashboard-runs.js).
require("./lib/dashboard-runs").claimToolSessions();
// Codex sessions and token usage, from the same journals (codex-usage.js):
// a first pass over every rollout in the background, then the same beat.
try {
@@ -1073,6 +1076,7 @@ if (require.main === module) {
try {
const { installHooks, isInsideContainer } = require("../scripts/install-hooks");
if (installHooks(true)) {
// With the agenthub plugin enabled this only removed duplicate entries.
console.log("Claude Code hooks auto-configured.");
} else if (isInsideContainer()) {
console.log(