← all documents · raw markdown · 5 KB

Porting off Discord — the actual inventory

*Measured 2026-08-30 against the live tree. Owner's directive: Discord was the scaffolding that

started the project; Oracle OS is the platform; port everything across, then delete the Discord path.*

---

Why the Learning area is blank

Its five cards call five endpoints on the dashboard server ([internal module]),

and two of them read Discord channels, not KAI:

| card | endpoint | where the data comes from | blank without Discord |
|---|---|---|---|
| KAI Dreams | [internal endpoint] | epistemic cells joined with raw posts from #kai-dreams | yes |
| Training feed | [internal endpoint] | recent #kai-training posts (channel 1513342578777395351), db fallback | yes |
| Tutor input box | [internal endpoint] | posts into #kai-training via the bot. Its own comment: *"There is NO live interactive tutor endpoint"* | yes — the box does nothing |
| Training scorecard | [internal endpoint] | [internal module] on disk | no |
| Overnight pipeline | [internal endpoint] | flag + lock files on disk, .env schedule window | no |
| KAI Vitals | [internal endpoint] | proxy of the engine's [internal endpoint] + [internal endpoint], using kai.mjs's Discord formulas | no |

So the Learning area is not broken. It is pointed at a platform that is no longer running.

The scale

command-center-server.mjs defines 280 endpoints. 39 of them are Discord-dependent — they

reference the Discord client, a channel id, or the guild:

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] [internal endpoint] [internal endpoint] [internal endpoint]

[internal endpoint] + the 9 [internal endpoint]* routes

Not all need porting. They fall into three groups:

A. Port the data source (the Learning area lives here). [internal endpoint], [internal endpoint],

[internal endpoint], [internal endpoint]. Each reads or writes a Discord channel for something KAI already

holds or could hold locally:

[internal endpoint] exist on the Rust side, and dream_count is persisted. Read the

lattice, drop the channel join.

writes pipeline_curriculum.json. Both are on disk. Read those.

endpoint at all, which is why the box only ever posted to a channel. The Oracle path now has a

real reply pipeline (v9.10.846), so the tutor box can finally talk to KAI directly.

B. Delete outright. The 9 [internal endpoint]* routes, [internal endpoint],

[internal endpoint], [internal endpoint], [internal endpoint]*, [internal endpoint],

[internal endpoint]. These describe Discord itself; nothing in Oracle OS needs them.

C. Check before touching. [internal endpoint], [internal endpoint], [internal endpoint], [internal endpoint],

[internal endpoint], [internal endpoint], [internal endpoint]*, [internal endpoint]*, [internal endpoint],

[internal endpoint]*, [internal endpoint]*. These are Oracle OS features that happen to *also* consult

Discord — usually to resolve a user or post a notification. Each needs its Discord branch removed

without removing the feature.

The engine side

Already handled in v9.10.846: the reply pipeline that reaches KAI's own voice existed only in

handle_discord_turn, so the Oracle path could not speak at all in RSHL-native mode. It now calls

rshl_lattice_reply(), which runs the same stages in the same order.

Still Discord-only in [internal module], from KAI-GOAL-generative-mind.md §7:

the turn router, the tutoring direct-recall branch, native_stack_reply, training mode, attachment

and vision handling, and store_or_reinforce of the human's own message — which is how KAI learns

from a conversation at all. Verify that last one first. If the Oracle path does not store the

turn, KAI has not been learning from anything the owner has said to him in Oracle OS.

Order

1. Build and verify v9.10.845 / v9.10.846. Two Rust changes are outstanding and unbuilt; nothing

else should be stacked on them until a real conversation confirms they work.

2. Verify store_or_reinforce on the Oracle path. This is the highest-stakes unknown on the list.

3. Group A, one endpoint at a time, each verified in the Learning area before the next.

4. Group C, removing Discord branches without removing features.

5. Group B deleted, plus [internal endpoint], handle_discord_turn, and tools/oracle-discord/bots/,

in one commit that names everything removed.

Do not delete first and port after. The Discord path is still the only working reference for

what a complete KAI turn looks like.