nova-right-nav / docs /implementation-notes.md
google-labs-jules[bot]
Deploy JourneyTest Laya to space
3dc792e
|
Raw History Blame Contribute Delete
2.61 kB
metadata
type: Implementation Plan
title: Laya Implementation Gates
description: Short audited plan for Gates A through F.
tags:
  - planning
  - laya
  - journey-service
timestamp: 2026-09-27T00:00:00.000Z
source_files:
  - spec.md
  - src/journey/service.ts
  - src/journey/runner.ts

Laya Implementation Gates

  • Gate A (implemented): shared in-memory JourneyService, authoritative JourneyRunner, JourneyAgent, deterministic scripted/mock agents, safe typed decisions, evidence, cancellation boundary, and JourneyResult v1.
  • Gate B (remote vertical slice implemented): backend lifecycle protocol, remote SystemOne backend, LayaAgent, goal-aware scope, coarse-to-fine evidence, deterministic value providers, enriched observations, and a real v32b browser action. Embedded and mock Laya backends remain later Gate B work.
  • Gate C: make journeytest run a thin service client while retaining legacy authored-file compatibility; add doctor/info and JSON output.
  • Gate D: expose asynchronous /api/v1 jobs over the same service, with URL policy, bounded queues, artifact safety, and lifecycle tests.
  • Gate E: mount a Gradio developer surface on the API application and render the service's events/results rather than starting another runner.
  • Gate F: detect Spaces, resolve auto to embedded, load/prewarm once, health-check Chromium, and serve the composed UI/API on port 7860.

Gate B's required remote vertical slice is real, not mocked. The four-case contract battery scored 3/4 for both v32b and the currently published cklxx v17s; both missed the synthetic DONE case. Both selected Pricing correctly at 5, 20, and 25 candidates, with coarse-to-fine used at 25. This small comparison does not establish general benchmark superiority.

The two pre-existing shared-tab timing tests were rerun individually after Gate B. They remained reproducibly failing: the stress case exceeded its 10-second timeout; the latest isolated rerun measured queued release at 651 ms against a 250 ms assertion. Gate B and the interface stages did not modify that shared-session implementation or relax those assertions.

The deployment-hardening stage installed Docker 29.1.3 and started dockerd with the userspace vfs driver, but this container does not grant mount-namespace capabilities. Both the legacy builder (unshare: operation not permitted) and BuildKit (bind mount: operation not permitted) failed before reading the first Dockerfile instruction. The image therefore still requires validation in a Docker-capable host; no local container-boot claim is made.