Login
Check-in [0160971667]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:A workspace the console makes clones the repository's public URL, with autosync on

Purpose: stone, 013bdbdf7c, choosing the https remote: "Each new workspace would then get `fossil remote` set to that URL, with its login and password remembered, and autosync on. The console would pass the URL in explicitly. If the URL is missing or doesn't resolve, a launch is refused with a message saying so; it never quietly falls back to the file." Since 393e0757a7 a workspace's remote was the repository file, which is outside the sandbox, so a session could not sync, pull or push during its turn. Shape: - Launch.public_url reads the repository's email-url. It refuses one that is unset, not http(s), or whose host does not resolve. - Add a workspace clones that URL; Preview and Add refuse first, before any login, thread or definition is made. - Launch.start refuses before anything is on the record when the workspace is still to be made and there is no usable URL. - The daemon passes `--remote URL` to `workspace serve` only for a workspace still to be made (Launch.prepare); a made workspace keeps its own remote. A refusal there is said on the record. The repository file is kept in the workspace as launch.repository, which an adopting daemon reads; sessions launched before fall back to their --remote. No new flag, so Restart on the previous release still works. - Workspace.create turns autosync on for a URL clone and leaves it off for a file clone. - The session prompt says autosync pushes each commit; AGENTS.md, interfaces.md, facts.json and the survey say the same.

Intent: a session's commits and posts reach the record as it makes them, from inside its sandbox. Expression: src/ocx/launch.cr, src/ocx/daemon.cr, src/ocx/cgi.cr, src/ocx/workspace.cr, src/ocx/session.cr, AGENTS.md, docs/. Demonstrates: spec/ocx/public_url_spec.cr, spec/ocx/workspace_spec.cr, spec/ocx/daemon_spec.cr, spec/ocx/console_workspaces_spec.cr, spec/ocx/session_spec.cr, crystal run ci.cr: - email-url unset, ftp, or not resolving is refused; a trailing slash is dropped; - a URL clone's own `fossil commit` is in the served repository at once; a file clone has autosync off; - with no email-url a launch is refused before posting, and the daemon's refusal is said on the record; - the daemon passes the URL and keeps the repository, and an adopting daemon finds it; - the console's Add refuses without a URL and, with one, makes a workspace whose remote is that URL, cloned over HTTP from a served fixture; a later launch passes no --remote; - CI green, 236 examples, coverage 96.9%, 10 tools build.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | ocx | audited | ci
Files: files | file ages | folders
SHA3-256: 01609716678d0aac956cd56b643fb0b863a3ad6059dfdc6a648a2a3be3d604fd
User & Date: opus-ocx 2026-10-01 22:41:48.286
Context
2026-10-03
03:42
Merge the https workspace remote from ocx: clones use the public URL with autosync on Intent: Bring stone's chosen fix (a0f69aff9f, "merge the https fix") to ocx-human-feedback, so a workspace the console makes syncs from inside its sandbox, under precept C6 (Explicit Arguments): the remote is the repository's email-url, read and refused explicitly, never the unreachable file. Expression: Cherry-picks d26240540f (the prompt says how a clone syncs), eed22764dd (AGENTS.md) and 0160971667 (Launch.public_url; Add a workspace and launches refuse without a usable URL; the daemon passes --remote only for a workspace still to be made; Workspace.create turns autosync on for a URL clone). Conflicts resolved for this branch: its daemon has no adoption or re-exec, so Launch.launched_from is left out; its Add a workspace has no Preview, so the URL check comes after the branch and existing-workspace checks; the console's shared handler reports the refusal, keeping src/ocx/cgi.cr within 400 lines. Demonstrates: spec/ocx/public_url_spec.cr, spec/ocx/workspace_spec.cr, spec/ocx/session_spec.cr, spec/ocx/daemon_spec.cr, spec/ocx/console_workspaces_spec.cr (12 examples, 0 failures); crystal run ci.cr: 226 examples with the same three historical guard failures 9a9a7102b7 reports (audit_spec self-audits, checkin_spec on a3fa673be0, 3b2e5cba50, 77b706f5de, 62fdf50d8a), coverage 96.4% with the ratchet holding. check-in: 329b8a256a user: opus-ocx tags: ocx-human-feedback
2026-10-02
11:12
Propose one CGI owner for each person-facing CLI tool

Intent: Make the maintainer's request for CLI and CGI alignment reviewable before changing routes or permissions. Expression: docs/cli-cgi-alignment.md inventories the tool and page gaps, proposes an option-level contract and guard, and names the host-entrypoint boundary for review. Demonstrates: docs/cli-cgi-alignment.md records the current tool and page mapping; crystal run ci.cr is green with 236 examples, 96.9% coverage, and 10 tools built. check-in: f292e15dd6 user: sol-ocx tags: ocx, audited, ci

2026-10-01
22:41
A workspace the console makes clones the repository's public URL, with autosync on

Purpose: stone, 013bdbdf7c, choosing the https remote: "Each new workspace would then get `fossil remote` set to that URL, with its login and password remembered, and autosync on. The console would pass the URL in explicitly. If the URL is missing or doesn't resolve, a launch is refused with a message saying so; it never quietly falls back to the file." Since 393e0757a7 a workspace's remote was the repository file, which is outside the sandbox, so a session could not sync, pull or push during its turn. Shape: - Launch.public_url reads the repository's email-url. It refuses one that is unset, not http(s), or whose host does not resolve. - Add a workspace clones that URL; Preview and Add refuse first, before any login, thread or definition is made. - Launch.start refuses before anything is on the record when the workspace is still to be made and there is no usable URL. - The daemon passes `--remote URL` to `workspace serve` only for a workspace still to be made (Launch.prepare); a made workspace keeps its own remote. A refusal there is said on the record. The repository file is kept in the workspace as launch.repository, which an adopting daemon reads; sessions launched before fall back to their --remote. No new flag, so Restart on the previous release still works. - Workspace.create turns autosync on for a URL clone and leaves it off for a file clone. - The session prompt says autosync pushes each commit; AGENTS.md, interfaces.md, facts.json and the survey say the same.

Intent: a session's commits and posts reach the record as it makes them, from inside its sandbox. Expression: src/ocx/launch.cr, src/ocx/daemon.cr, src/ocx/cgi.cr, src/ocx/workspace.cr, src/ocx/session.cr, AGENTS.md, docs/. Demonstrates: spec/ocx/public_url_spec.cr, spec/ocx/workspace_spec.cr, spec/ocx/daemon_spec.cr, spec/ocx/console_workspaces_spec.cr, spec/ocx/session_spec.cr, crystal run ci.cr: - email-url unset, ftp, or not resolving is refused; a trailing slash is dropped; - a URL clone's own `fossil commit` is in the served repository at once; a file clone has autosync off; - with no email-url a launch is refused before posting, and the daemon's refusal is said on the record; - the daemon passes the URL and keeps the repository, and an adopting daemon finds it; - the console's Add refuses without a URL and, with one, makes a workspace whose remote is that URL, cloned over HTTP from a served fixture; a later launch passes no --remote; - CI green, 236 examples, coverage 96.9%, 10 tools build.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> check-in: 0160971667 user: opus-ocx tags: ocx, audited, ci

21:20
AGENTS.md says how a session's clone syncs with a file remote and with a URL

Purpose: stone, on 58d537bd67: "please correct the documentation." AGENTS.md told every session to run `fossil sync -R ../clone` and said the task tool syncs. With the repository file as the remote (393e0757a7) neither works inside the sandbox, which led opus-ocx to report sessions as unable to sync. The host syncs the clone before and after each turn and posts kept turns from ~/outbox (Session.start, Outbox).

Intent: the instructions a session reads match how its work reaches the repository, for both kinds of remote. Expression: AGENTS.md. Demonstrates: crystal run ci.cr: green, 235 examples, coverage 96.9%, 10 tools build. The behavior described is pinned by spec/ocx/session_spec.cr (d26240540f) and spec/ocx/workspace_spec.cr (file clone syncs from the host, kept turns posted once).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> check-in: eed22764dd user: opus-ocx tags: ocx, audited, ci

Changes
Unified Diff Side-by-Side Diff Patch
Changes to AGENTS.md.
Changes to docs/design/facts.json.
Changes to docs/interfaces.md.
Changes to docs/survey/functionality.json.
Changes to spec/guards/sourcing_spec.cr.
Changes to spec/ocx/console_workspaces_spec.cr.
Changes to spec/ocx/daemon_spec.cr.
Added spec/ocx/public_url_spec.cr.
Changes to spec/ocx/session_spec.cr.
Changes to spec/ocx/workspace_spec.cr.
Changes to spec/support/fixture.cr.
Changes to src/ocx/cgi.cr.
Changes to src/ocx/daemon.cr.
Changes to src/ocx/launch.cr.
Changes to src/ocx/session.cr.
Changes to src/ocx/workspace.cr.