Work produced by the /kb driver on 2026-07-30. Each change is recorded on its Kanboard task; all remain Done-unverified or parked pending alvis's decisions. #183 agap-mcp/src/gitea.js askpassScript() and giteaWikiWrite()'s wiki checkout both used /tmp/agap-mcp-wiki, so writing the askpass helper made the dir non-empty and git clone always failed. gitea_wiki_write had likely never succeeded in production. Askpass moved to its own dir. #181 agap-mcp/src/server.js Initialise registeredToolCount at module load so /health reports the real count immediately instead of 0 until the first MCP request. #189 kanboard/backup.sh, seafile/backup.sh, vaultwarden/backup.sh, users-backup.sh, openai/backup-{hindsight-adolf,llm-dbs}.sh Remove the dead *.ts Zabbix trapper pushes (never landed). users-backup.sh also pointed at localhost:81 instead of 192.168.1.4:81 and pushed a date string into a numeric item. Freshness monitoring now rides the .age items. #192 RESTORE-RUNBOOK.md, {kanboard,seafile,vaultwarden}/restore.sh Restore path for the three services, verified in throwaway containers. Note: this work found Seafile backups have carried an empty ccnet_db.sql since 2026-07-07 -- filed as kb#222, not fixed here. #164 openai/litellm-config.yaml Metered `judge` (anthropic/claude-haiku-4-5) entry removed per alvis's 2026-07-30 decision. ANTHROPIC_API_KEY was never wired, so it could not spend. #128 openai/agent_registry.py litellm_key_spec() now also grants the routing-mode aliases, gated by the same _reachable_tiers() check as raw grants, so a small-tier agent cannot acquire automatic routing that resolves to tier-large. #219 openai/migrate-adolf-state.sh Migration script only; inert until run. Copies (never moves) the openai_adolf-state volume to /mnt/ssd/dbs/adolf, verifying a full sha256 manifest before declaring success. Tested against a throwaway volume. Deliberately NOT included, both awaiting alvis: agap-mcp/docker-compose.yml -- kb#174's contested BW_EMAIL revert (parked). openai/docker-compose.yml -- kb#219's bind-mount switch; the target dirs under /mnt/ssd/dbs/adolf do not exist yet, so committing it would let a later `compose up` recreate Adolf against empty paths. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Y5QPagv4iun1ghpwM96Ff
This commit is contained in:
@@ -9,7 +9,10 @@ import { join } from 'path';
|
||||
let _askpassPath = null;
|
||||
function askpassScript() {
|
||||
if (_askpassPath) return _askpassPath;
|
||||
const dir = join(tmpdir(), 'agap-mcp-wiki');
|
||||
// Deliberately separate from the wiki checkout dir (agap-mcp-wiki) below —
|
||||
// sharing a dir made it non-empty before `git clone` ran, so clone always
|
||||
// failed with "destination path already exists" on any fresh checkout.
|
||||
const dir = join(tmpdir(), 'agap-mcp-wiki-askpass');
|
||||
mkdirSync(dir, { recursive: true });
|
||||
const scriptPath = join(dir, 'git-askpass.sh');
|
||||
writeFileSync(scriptPath, '#!/bin/sh\nprintf %s "$GITEA_ASKPASS_TOKEN"\n', { mode: 0o700 });
|
||||
|
||||
@@ -493,6 +493,9 @@ if (isMainModule) {
|
||||
console.error(`agap-mcp refusing to start: ${e.message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
// kb#181: compute tool count from actual server.tool registrations at startup,
|
||||
// before listening, so /health has the accurate count from the beginning
|
||||
createServer(); // temporary server instance just to count tools; throws away the server
|
||||
init()
|
||||
.then(() => {
|
||||
app.listen(PORT, () => console.log(`agap-mcp listening on :${PORT}`));
|
||||
|
||||
Reference in New Issue
Block a user