hive-core, in a page

Nothing here computes an answer. Every verdict below comes out of hive-core compiled to wasm — the same function, the same words, as on a machine.

Is this a legal box?


  

May this box ask this device to do this?


    

Box v1 attaches nothing, so this is refused — and the sentence you read was written by decide(), not by this page.

A box, in this tab

Pyodide in a Web Worker, running the same driver.py the binary embeds. Its volumes are in OPFS, on your disk, in this origin. Nothing was installed.

starting the box…

Writes reach the disk when the box is shut down, not before: Pyodide has no synchronous OPFS, and a worker sitting inside Python can run neither a promise nor a callback. Closing the tab without shutting down loses what it wrote.

Its Python is not quite the machine's. Pyodide ships some of the standard library as separate packages, so sqlite3, ssl and lzma are a ModuleNotFoundError here and are not in a box on a machine. Loading them is what hive.install() is for, and that goes out as a request the harness answers — which this placement cannot do yet.

The agent, in this tab

The same loop the binary runs — the same prompt, the same two tools, the same retry budget — in a second worker, calling the model through this page. agent/mod.rs was not touched to make this work.

 

reading the log…

This is the log, not a list this page keeps. Every line above was rendered from hive-log/session.jsonl in this origin, by the same hive-core that writes it. Reload the tab and the conversation is still here; point hive log at the file and it reads the same entries.

The key never enters either worker. A worker cannot address this thread's heap — there is no shared object graph, only a one-slot channel, and the only thing that ever crosses it towards the box is box output. Both workers are sealed with connect-src 'self'; this page is the only thing that can reach the model, and it can reach nothing else.

What that does not survive is anything running on this thread. A key a laboratory uses belongs in the connector, which is the next step.