| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(skills): temporal date-range skills + worker capability catalog (P3) Bundle read-only temporal-awareness skills for spawned workers and a capability catalog the worker reads at boot. Temporal skills (resources/skills/) ride the existing copyBundledSkills → $AGENT_DIR/.claude/skills/ mechanism — no spawn wiring needed: - temporal/when.mjs — single date-math resolver. Resolves named windows to concrete ISO ranges relative to the worker's run time (new Date() at invoke); pure Node stdlib, no writes, no network. Emits inclusive civil dates + half-open [startUtc, endExclusiveUtc) instants, days, tz, asOf. Handles today/yesterday, this|last Week/Month/Quarter/Year, last7|30|90Days, last12Months, generic lastN{days,weeks,months}, and ytd/qtd/mtd/wtd aliases. - 12 named per-window skills (/today, /yesterday, /thisWeek, /lastWeek, /last7Days, /last30Days, /thisMonth, /lastMonth, /thisQuarter, /lastQuarter, /thisYear, /lastYear) — thin wrappers calling the shared resolver. - temporal/SKILL.md — /temporal resolver doc (full window list + arbitrary ranges). capabilities/SKILL.md — the per-worker capability catalog (invokable as /capabilities): env vars/workspace, the temporal skills, and external integrations reached via the loopback broker (referenced generically), with exact call syntax and the read-only/no-remote-push boundaries. index.ts: worker dispatch suffix now points the worker at /capabilities at boot (add-only instruction text). typecheck:node + typecheck:web both EXIT 0. Resolver + end-to-end worker-path invocation verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(knowledge-graph): v1 vertical slice — ingest, store, agent CLI (flag OFF) Phase 2 of the enterprise Knowledge Graph. Behind knowledgeGraph.enabled (default OFF → zero behaviour change). Ships ingest → file-backed store → agent retrieval end-to-end for two modalities (text/markdown/code + images). - src/main/kg-core.cjs pure-JS core (parse/chunk/keyword-search), no native deps so it loads under both Electron main AND a plain node CLI (dodges the better-sqlite3 electron-ABI trap) - resources/kg.cjs agent-facing CLI: `kg search|list|get`, invoked via Bash like MemPalace; resolved + env-injected like md-slack-reply.cjs - src/main/knowledge.ts KnowledgeManager: active()/env()/status()/ingest/search, mirrors MemoryManager and slots into the spawn flow - config + spawn + prompt: knowledgeGraph flag; KG_ROOT/KG_CLI/KG_CORE injected when on; one flag-gated, cache-safe line in injectedPrompt - IPC + preload + Settings toggle (+ add-files picker); HarnessConfig mirrored across main/renderer/preload - test/kg-core.test.cjs 12 tests: tokenize/chunk/score + ingest→search round-trip for text & image + the real out-of-process kg CLI typecheck (node+web) clean; node test/kg-core.test.cjs green; build copies the sidecar and the bundled main keeps a runtime require('./kg-core.cjs'). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(slack): bundle md-slack-reply.cjs helper + preload reply/status API - resources/md-slack-reply.cjs: standalone node helper the office worker runs to post its end-of-run summary back in-thread. It locates the loopback endpoint via MD_SLACK_REPLY_CONFIG (or --config), reads { port, token }, and POSTs the reply. NEVER touches the bot token — that stays in main. - electron-builder.yml: ship the helper via extraResources (process.resourcesPath). - preload: widen onSlackMessage to carry thread coords; add slackStatus, slackReply, slackReplyScriptPath. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |