Skip to content

Add shared attached operations and Bellwether human-play fixture - #316

Closed
concordia-claw wants to merge 6 commits into
google-deepmind:mainfrom
concordia-claw:feat/bellwether-shared-slice-001
Closed

concordia-claw wants to merge 6 commits into
google-deepmind:mainfrom
concordia-claw:feat/bellwether-shared-slice-001

Conversation

@concordia-claw

@concordia-claw concordia-claw commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Consolidated into #314. Closed only as a superseded review thread, following Joel Z. Leibo’s category guidance. The work is preserved in the continuing category PR; this does not indicate an upstream merge or rejection of the feature. Continuing issue: #313; continuing PR: #314. Bellwether-specific handlers and examples continue in PR #372; the reusable editor/CLI API continues in PR #314.


Closes #315

Dependencies and focused review

Dependent draft. Requires #306 (which includes #302 and #304) and #312. These are OPEN, not merged. The branch combines current main (9e4173f) with those prerequisites; it does not include #308, #310, #314, or the unrelated #297 viewer.

  • Feature-only diff: 14 files; sole feature commit 6a006731dc69e495c90ffcde2ee64298db832c24.
  • Dependency-only review base: d47767be580adfe71f51f507be6ce40f88c714d3.
  • GitHub's main-target diff currently also contains the inherited prerequisites. Rebase/reduce after those land; do not review this as an independent replacement for them.

What this adds

  1. OperationService / Operation / Parameter: one validated registry for attached queries/mutations, scalar schema discovery, typed errors, process-lifetime references, revisions, and retained retry protection. Domain handlers retain responsibility for atomic validation and execution boundaries.
  2. Optional capability-bound mode in the existing SimulationServer, reusing HTTP/SSE and disabling legacy bypass routes in that mode. Listener-fixed player views never receive developer snapshots/events.
  3. visualize_operations_to_html adds a schema-driven panel to the standard editor. concordia-session dispatches the same handlers using structured JSON/file/stdin and provides discovery/state/watch with meaningful exit codes. No second engine or server implementation.
  4. Last Light at Bellwether, a minimal one-turn fixture: four resident/four-location scaffold, public human screen, one private designated Mara Constant edit, one human proposal, fixed explicit receipt, and standard developer trace/logs. It reuses HumanAct/HumanSession, minimal prefabs, fixed GM components, standard MakeObservation, Simulation/Sequential, and SimulationLog.

The designated edit is rejected while the actual execution worker is alive, even after Pause or while awaiting human input. Initial configuration and other entities remain unchanged. Run cannot be replaced/replayed. GUI drafts retain their original revision so external changes cause a visible stale error rather than silent overwrite.

Verification

  • 21 focused checks pass, including actual Chromium/HTTP/CLI: exact text and edit isolation; GUI/CLI semantic state/event equality; concurrent retries; atomic stale/invalid/scope errors; fresh ownership; real thread quiescence guard; reconnect; literal markup; player HTML/JSON/SSE filtering. These tests prohibit Simulation.play.
  • Separately, two explicitly launched one-turn NoLanguageModel fixtures used the real standard Sequential execution path. The final browser walkthrough edited GUI→CLI and CLI→GUI, submitted one human action, checked the matching developer trace, rejected editing while input was pending despite Pause, and verified completion/reload/mobile layout without page errors. No paid calls or live resident decisions. A subsequent initial-snapshot ordering correction is covered by the final no-run regression.
  • Broader affected-component/server/browser regression: 127 passed, 1 failed. Failure is the previously observed legacy HttpEndpointsTest.test_set_component_state_requires_simulation ConnectionResetError, outside the capability-bound API. It is not claimed green or fixed here.
  • Formatting/import checks pass; Pyrefly: zero errors (two warnings not shown). New files have no pylint findings; modified existing files have no new findings relative to the dependency base.
  • Wheel builds and includes the service/CLI plus example HTML/README and console entry point. Fresh-environment end-to-end installation has not been measured.

Scope and non-claims

This teaches a shared service seam; it is not the completed live Bellwether game or social/scientific validation. The fixture grants no consent, transfers no resources, and does no repair work. Residents are instantiated but do not act. Initial mechanics are explicit configuration, not implemented watch outcomes.

No full editor-family parity, project authoring, arbitrary memory intervention, general rollback transaction, in-flight cancellation, checkpoint/branch continuation, experiments, or deterministic hosted-model claims. Loopback listener audiences do not authenticate against other local processes. Full game and workflow acceptance remain backlog.

See concordia/examples/bellwether/README.md for exact source-checkout commands, six registered operations, validation limits, and privacy boundary. No workflow/credential changes or host-specific logs, screenshots, routes, or runtime artifacts are included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shared validated operations for editor, attached CLI, and human-player surfaces

1 participant