mall admin

We use AI heavily. Verify facts. We are only a board / listing site. Verify your questions with the sellers. Guests browse only. Not a minor.

admin

MHA internal · slots · law · regs · backing tables · not the shopper Board

Leftover drip / 5-min loop. Agents hydrate loop-state.json (mid-cycle). tick-latest is end-of-cycle only.

Fast snapshot read (no live Couch scan).

live activity · hub URL /activity/tick

loop-state (heartbeat)

{
  "ns": "mall.loop.state",
  "at": "2026-10-16T22:44:01.077Z",
  "phase": "file_done",
  "rolling": [
    {
      "at": "2026-10-16T22:36:50.785Z",
      "file": "leftover-belts-vac.yaml",
      "kind": "commodity",
      "group_id": "g11",
      "cat": "leftover-belts-vac",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16305900
    },
    {
      "at": "2026-10-16T22:38:26.878Z",
      "file": "leftover-bolts-mc.yaml",
      "kind": "commodity",
      "group_id": "g03",
      "cat": "leftover-bolts-mc",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16130426
    },
    {
      "at": "2026-10-16T22:38:27.277Z",
      "file": "leftover-bookmarks.yaml",
      "kind": "commodity",
      "group_id": "g27",
      "cat": "leftover-bookmarks",
      "pending": 96,
      "filled": 96,
      "live": 95,
      "deferred": 1,
      "errors": 0,
      "ms": 16130713,
      "blocker": "mall.verify.build"
    },
    {
      "at": "2026-10-16T22:41:14.592Z",
      "file": "leftover-blankets-pet.yaml",
      "kind": "commodity",
      "group_id": "g34",
      "cat": "leftover-blankets-pet",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16298422
    },
    {
      "at": "2026-10-16T22:41:14.723Z",
      "file": "leftover-blocks-extra.yaml",
      "kind": "commodity",
      "group_id": "g05",
      "cat": "leftover-blocks-extra",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16298412
    },
    {
      "at": "2026-10-16T22:41:15.008Z",
      "file": "leftover-bits.yaml",
      "kind": "commodity",
      "group_id": "g15",
      "cat": "leftover-bits",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16401715
    },
    {
      "at": "2026-10-16T22:41:15.134Z",
      "file": "leftover-blades.yaml",
      "kind": "commodity",
      "group_id": "g15",
      "cat": "leftover-blades",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16299034
    },
    {
      "at": "2026-10-16T22:41:15.197Z",
      "file": "leftover-bottles.yaml",
      "kind": "commodity",
      "group_id": "g19",
      "cat": "leftover-bottles",
      "pending": 96,
      "filled": 96,
      "live": 95,
      "deferred": 1,
      "errors": 0,
      "ms": 16225485,
      "blocker": "mall.verify.build"
    },
    {
      "at": "2026-10-16T22:42:28.176Z",
      "file": "leftover-bowls-extra.yaml",
      "kind": "commodity",
      "group_id": "g34",
      "cat": "leftover-bowls-extra",
      "pending": 96,
      "filled": 96,
      "live": 96,
      "deferred": 0,
      "errors": 0,
      "ms": 16202156
    },
    {
      "at": "2026-10-16T22:44:01.055Z",
      "file": "leftover-boxes.yaml",
      "kind": "commodity",
      "group_id": "g22",
      "cat": "leftover-boxes",
      "pending": 96,
      "filled": 96,
      "live": 95,
      "deferred": 1,
      "errors": 0,
      "ms": 16215940,
      "blocker": "mall.verify.build"
    }
  ],
  "blockers": [
    "mall.verify.build"
  ],
  "next_hint": "facet/build catch-up for leftover-boxes (g22)",
  "law": "projection only · hydrate loop-state before complete.jsonl · never mint from tick",
  "tick_id": "tick:2026-10-16T13:46:58.268Z",
  "pid": 1,
  "concurrency": 12,
  "queue": {
    "files": 429
  },
  "bundle_worker": {
    "worker": "worker:1",
    "dry": false,
    "lease_min": 10,
    "heartbeat_sec": 30,
    "scanned": 4221,
    "reaped": 0,
    "consumed": 0,
    "completed": 0,
    "failed": 0,
    "reap_samples": [],
    "consume_samples": []
  },
  "duty": {
    "ok": true,
    "action": "resumed",
    "shift": "2026-10-16/A",
    "session_id": "agent:on-duty/2026-10-16/A",
    "path": "mydata/session/agents/agent__on-duty__2026-10-16__A.yml",
    "actor": "agent:on-duty",
    "actor_source": "plant_key"
  },
  "tick": {
    "filled": 0,
    "live": 0,
    "leftover": 0,
    "proposed": 0
  },
  "last_file": "leftover-boxes.yaml",
  "last_kind": "commodity",
  "last_group": "g22",
  "last_cat": "leftover-boxes",
  "last_result": {
    "pending": 96,
    "filled": 96,
    "live": 95,
    "deferred": 1,
    "errors": 0,
    "ms": 16215940,
    "blocker": "mall.verify.build"
  }
}

tick-latest (full cycle)

{
  "at": "2026-10-16T13:41:16.712Z",
  "queues": {
    "seed": 0,
    "leftover": 0,
    "files": 429
  },
  "filled": 0,
  "live": 0,
  "proposed": 0,
  "expire": null,
  "secondary": {
    "turns": null,
    "proof": null
  },
  "duty": {
    "ok": true,
    "action": "resumed",
    "shift": "2026-10-16/A",
    "session_id": "agent:on-duty/2026-10-16/A",
    "path": "mydata/session/agents/agent__on-duty__2026-10-16__A.yml",
    "actor": "agent:on-duty",
    "actor_source": "plant_key"
  },
  "concurrency": 12,
  "law": "5 min main tick. File-parallel up to TICK_CONCURRENCY (max 16). Occupancy-end / waitlist 24h. Never mint from the tick."
}

bun run tick:state · pid mydata/queues/mall-tick.pid · do not kill a live fill without a kick plan