Orchestrata Ultimate › Research › DeepChat history review
DeepChat history review (2026-10-11 to 2026-10-21)
| Question | What did the DeepChat agent sessions do to these repos and this host, and which of it is still in effect or still open? |
| Method | Read the extracted DeepChat transcripts: seven conversation exports (three of them empty stubs), plus longer extracts of the work-machine session and the components session. Each claim was then checked against git, the file system or unit state on 2026-10-23. Only technical content is recorded here |
| Status | Reviewed. The dependency-injection ruling is acted on (a5c419f5). The 16 disabled units and the 48 untracked skills are open |
The sessions
| Dates | Session | What it was about |
|---|---|---|
| 10-11 | "analyze my orchestrata.codetools project" | An architecture diagram of codetools (short) |
| 10-20 05:26–07:37 | "Greeting and codetools assistance offer" | Writing DeepChat skills |
| 10-20 07:37–08:59 | "Review this week's notes and identify gaps" | The codetools weekly review, a Qwen worker lane, the codetools plugin, the work-machine install plan, and the dependency-injection ruling |
| 10-21 00:31–19:37 | "Opening wt-COMPONENTS" | Pushes to master, the RAG investigation, gate work, a Memgraph query benchmark, the btrfs diagnosis and the shutdown |
1. The codetools Claude Code plugin (2026-10-20)
Mohamed asked for a version of codetools he could install on a work computer with only Claude Code. He set the shape: "not an MCP, a plugin", on Python 3.14t, "also Prolog included and skills and hooks".
The plugin went into orchestrata.codetools as commit 84ec9bd7 and is still on disk under plugins/codetools/:
- 7 skills: blast-radius, deploy, diagram, realize, rtm, snapshot, verify;
- 5 commands;
- 4 hooks wired through
hooks/hooks.jsonto SessionStart, PreToolUse and Stop:block_except_pass.py,error_gate.py,coverage_gate.py,decision_adr_trigger.sh; - 14 Prolog rule files and a
bin/ctwrapper that puts a bundledswiplonPATH.
The same session also committed the codetools weekly review (b4a46b64) and an ADR index (4abe9beb).
The session installed the plugin live, and claude plugin install reported outcome: ok. Its hook smoke tests passed, but they fed the hooks hand-built payloads. Today's hook inventory found that the real PreToolUse payload nests content and file_path under tool_input. In live sessions, therefore:
block_except_pass.pyanderror_gate.pydo nothing;- the Stop ADR trigger emits
decision: allow, which Stop ignores; coverage_gate.pyhas nostop_hook_activeguard.
The plugin is installed with scope local for ~/workspace only.
A lesson from the same session. The Qwen3 Coder Next worker was asked to write the ADR index, and it produced a canned index with wrong titles, dates and statuses. The coordinator rejected it and regenerated the index deterministically from the 44 ADR files. For pure extraction, a script beats a model. The components swarm page records the same lesson at larger scale.
2. The work-machine install plan and the janus-swi blocker
The plan is in orchestrata.codetools/plans/claude-code-only-install-2026-10-20.md: build the wheel set on Python 3.14t, ship the plugin tree, uv tool install, then claude plugin install.
The live smoke test hit a blocker: uv tool install codetools --python 3.14t failed. The chain was:
- codetools depended on
orchestrata-ultimate, which is a git dependency that only resolves on 3.14; orchestrata-ultimatepulls its vendored, patchedjanus-swias a source build;- that build needs
SWIPL(ADR-0091), and with it set it still fails against the Guixswipl9.3.8, because of splitlibswipl.sopaths and a gcc pointer-type error injanus.c.
The session tried three overrides: [tool.uv] override-dependencies, a [tool.uv.sources] index override, and an explicit index declaration. uv tool install --from honoured none of them for the transitive build. The session then established that codetools only needs the pure-Python orchestrata_ultimate.openspec reader. It proposed making that dependency optional, with pre-built wheels or Python 3.13 as the alternatives.
Whether the work-machine install now succeeds end to end was not measured after the fix in section 3.
3. The dependency-injection ruling
Mohamed, 2026-10-20 08:59: "YES, USE DEPENDENCY INJECTION".
It was implemented on 2026-10-22 as codetools a5c419f5, "spec intake: inject the OpenSpec reader; orchestrata-ultimate becomes the openspec extra". It was deployed by ct-install 75, with 20 of 20 tests passed. orchestrata.codetools/pyproject.toml now reads: "The OpenSpec parser codetools.spec reads changes with, injected into read_requirements (Mohamed, 2026-10-20). Not needed to install or run." The change also removes the codetools to orchestrata-ultimate cycle (see Python deployment best practices).
4. 2026-10-21: pushes, gate fixes and the RAG investigation
These commits are all on origin/master (checked 2026-10-23):
306e9eb5e. The affected oracle stops refusing files that need no test: agent config, empty__init__.py, build infra.949c1628c.pre-pushruns.venv/bin/pythoninstead ofuv run, becauseuv runre-synced the venv editable. This is the first sighting of the editable-venv flip. The pre-commit hook and a SessionStart hook kept the same bug until8a2cb42ad.e27c12b50. The pre-push range comes from the commit being pushed. The components branch landed onmaster:fb60eb97b..e27c12b50, 83 commits.68024751d(GATE-AFFECTED). The affected files are classified before infra starts, so a pure non-code push skips the service stack. Before this, a docs-only push paid about 5 minutes of infra boot to run 5 tests.
The RAG and context-injection investigation was published as RAG context-injection investigation.
The "fix the batch" diagnosis went no further than a diagnosis. In an affected run of 151 modules, 137 fast modules were killed when a slow Memgraph module in the same bin blew the 420 s batch timeout. The duration cache holds contention-free times, so the bin packer under-provisioned the bins. It was not fixed in that session.
The session also "fixed" three except A, B: clauses in wt-COMPONENTS/scripts/run_tests.py (5a935740e), calling them "Python-2 syntax". On Python 3.14 the unparenthesised form is valid (PEP 758). The same form is still in wt-MAP-PRECOMMIT/scripts/run_tests.py (in _write_canonical_report, for example), and the deployed AST toolkit parses it without error. The diagnosis was wrong; the parenthesised rewrite is harmless.
5. 2026-10-21: the Memgraph benchmark, the btrfs diagnosis and the shutdown
The query benchmark. 50 graph queries were run against prod at three scopes (1 module, 3 modules, all modules), before and after the rewrites. Most rewrites returned the same result much faster on the narrow scopes. Two examples: "total CALLS edges" at all modules went from 32,743 ms to 969 ms, and "parameters" at 3 modules from 4,101 ms to 35 ms. Two rewrites changed the results and are therefore not equivalent:
- #39, functions missing a return type: 23,587 before, 12,061 after;
- #40, methods missing a return type: 20,131 before, 13,505 after.
The extract does not show these two being reconciled.
The slowness. The diagnosis was storage, not queries. Memgraph's data sat in the Incus btrfs pool on the Samsung T9 portable USB SSD (/dev/sda2). There:
btrfs-cleanerran at 47% CPU andbtrfs-transactionat 44% in D-state;- PSI showed
io some avg60=12.39%; - a Memgraph process sat in uninterruptible sleep and could not be killed;
incus stophung for 15 minutes;- 14 Memgraph processes were running where about 6 were expected.
The root cause found afterwards was full btrfs qgroups on the T9 pool. Switching to simple quotas took sync from 60 s to 5 ms (see T9 Incus btrfs qgroup stall).
The shutdown. On Mohamed's instruction, DeepChat stopped:
- the prod Memgraph cluster (3 coordinators and 2 data nodes);
- the test fleet and the dev fleet, setting
boot.autostart=falseon both.
It also stopped and disabled 16 units:
- 5 MCP servers:
architecture,dev-tools,knowledge-memory,openmandriva,task; - 11 daemons:
orchestrata-ast-live-sync,-bot,-canvas,-conversation-consumer,-gateway,-kernel,miniircd,hermes-gateway,gitlab-runner,memory-monitor,aw-proxy.
Load dropped from about 14.7 to 6.77.
State on 2026-10-22/23. The units are still disabled. orchestrata-conversation-consumer and the user gitlab-runner were active even though they were disabled, and the system gitlab-runner was also active (see host inventories). The test and dev fleets still have autostart off. Re-enabling the units awaits Mohamed.
6. 48 new skills in wt-COMPONENTS
On 2026-10-20 DeepChat wrote skills tailored to itself. The topics included incus, uv, Python best practices, pytest, Memgraph, graph and ontology design, Redis, Wiki.js, system design, Azure, GCP, direnv, Prolog, Terraform/OpenTofu, C, CPython, tracing, traceability, OpenSpec, project management, documentation, Linux services, Emacs, rclone, Todoist, taskwarrior, Claude Code, algorithms, GoF patterns, requirements analysis and git workflow. There were more.
Measured 2026-10-23:
wt-COMPONENTS/.deepchat/skillshas 51 skill directories. 3 are tracked (knowledge-wiki,wiki-js,wiki-js-cli) and 48 are untracked.- The DeepChat runtime directory
~/.deepchat/skillshas 66. - 13 of the 51 names collide with Claude Code skill names.
Whether to commit, prune or move the 48 untracked skills has not been decided.
What is still open from DeepChat's work
- The 16 disabled units, and autostart on the test and dev fleets. Awaiting Mohamed.
- The 48 untracked skills in
wt-COMPONENTS. - Three codetools plugin hooks that do nothing, and one that can loop (see host inventories).
- The batch-packing starvation diagnosed on 2026-10-21. Not fixed in that session; current status not measured.
- Benchmark queries #39 and #40, whose rewrites changed results.
- An end-to-end test of the work-machine install after
a5c419f5.