Skip to content

MOTO v1.1.08 - #62

Merged
Intrafere merged 17 commits into
mainfrom
dev/moto-v1.1.08
Oct 15, 2026
Merged

Intrafere merged 17 commits into
mainfrom
dev/moto-v1.1.08

Conversation

@Intrafere

Copy link
Copy Markdown
Owner

MOTO v1.1.08

Features

  • Added standalone-versus-group proof novelty rankings with combined claims and exact member proof IDs.
  • Added separate Lean source and ranked-group JSON downloads across current and historical proof views, including LeanOJ.

Changes

  • Propagated grouped novelty provenance through canonical storage, versioned proof-search indexing/hydration, APIs, notifications, and live activity.
  • Made group membership self-contained, same-run-only, pruning-aware, and atomic in model context; incomplete groups are omitted instead of being presented as standalone discoveries.
  • Reworked Codex Responses as incremental SSE with strict terminal completion, typed failures, sequential recovery, and a non-canceling 25-minute watchdog.
  • Added shared provider-recovery handling so timed usage windows cooldown-retry across providers, while untimed spending or entitlement stays repair-required.
  • Gave xAI Grok the same stop-aware timed-cooldown and success-confirmed resume path as Codex and Sakana, using JSON body reset or ordinary 429 Retry-After, never treating spending-limit headers as a reset.
  • Standardized settings descriptions across all three modes to use non-italic text.
  • Made startup-provider and legal-disclaimer dialogs responsive, viewport-bounded, and visibly scrollable only when needed.
  • GPT 6.1 Sol replaces GPT 6 Sol as King Of The Hill.
  • Hardened credential setup with provider-scoped autofill-safe inputs, authenticated OpenRouter status, and transactional desktop key/OAuth persistence.
  • Added xAI OAuth reasoning-effort controls across Aggregator, Compiler, Autonomous Research, and LeanOJ settings, with Auto/high/medium/low/disabled choices.
  • Made continuous “Try to prove this” runs report each no-discovery round and finish normally after 10 consecutive rounds without candidates, resetting the streak whenever candidates are found.
  • Replaced the 75% pre-Lean proof-list novelty gate: any list with at least one Validator-approved novel candidate now proceeds with only those candidates, and lists regenerate with feedback only when none are novel.
  • Made novelty the only admission gate across proof discovery, proof and brainstorm Validators, topic selection, completion review, and paper continuation: whole-question attacks still come first, but genuinely novel incremental or indirect progress toward the user prompt is now accepted instead of rejected as tangential or non-essential.
  • Made proof-target selection budget-aware: discovery now states the real 5-attempt Lean budget (3 full-proof, then 2 tactic-script attempts), prioritizes direct solutions whenever they have a reasonable chance of being fully proved within it, and otherwise selects the strongest genuinely novel piece or indirect step that can be proved, without lowering the novelty bar; removed the stale promise that formalization would narrow oversized targets, and aligned compiler rigor discovery.
  • Routed failed proof targets through discovery instead of blind retries: discovery now sees each source brainstorm's unresolved failed targets, follow-up rounds no longer re-propose a failed target unchanged, and completed Autonomous papers no longer re-run every failed brainstorm target unchanged with 5 fresh attempts. Discovery decides whether to retry with a materially different formalization, prove a novel piece, or move on; an optional validated retry link resolves or updates the original target.
  • On Windows, when MOTO's folder is too deep for Mathlib, Lean's workspace now lives in a short per-user folder (%LOCALAPPDATA%\MOTO\lean) and the launcher deletes the unusable in-folder copy; proofs are disabled with "move MOTO to a short folder" guidance only if that isn't possible.
  • A broken Lean setup now stops the workflow with a durable "Lean 4 setup needs repair" message and keeps the proof checkpoint, so pressing Start resumes the same proofs; each proof round, rigor cycle, and final-solver attempt first gives a failed setup one fresh attempt.
  • Bumped the API contract to build6-v121 for the new lean_workspace_repair_required event and terminal reason.

Bug Fixes

  • Preserved completed Codex responses across broken HTTP framing and prevented terminal-less streams or nested retries from causing false success and request multiplication.
  • Added bounded, secret-redacted provider errors, retry timing, and unknown-outcome details to Live Activity.
  • Prevented group-level discovery tiers from being presented or injected as standalone theorem discoveries.
  • Preserved group rankings during duplicate detection and rejected cross-run members in archived group exports.
  • Preserved group provenance through proof-search rebuilds and suppressed incomplete group-ranked Assistant support.
  • Restored group exports from canonical same-run proof storage after interrupted LeanOJ state publication.
  • Added accessible archived-download errors and viewport-bounded scrolling for proof discovery notifications.
  • Prevented novelty context overflow from silently changing a group-capable ranking into a standalone-only judgment.
  • Preserved proof-specific output-truncation recovery for Codex max_output_tokens responses.
  • Grounded proof novelty rankings in the mathematical result actually established by Lean-verified code, rather than surrounding target claims, while preserving group-scoped ranking and adding visible novelty-assessment start activity.
  • Prevented startup dialogs from clipping off-screen; overflow now gets a slow one-time assist that permanently stops after user interaction or under reduced-motion settings.
  • Prevented invalid or stale OpenRouter keys and OAuth-only providers from falsely satisfying startup readiness.
  • Prevented credential replacement, clear, autofill, and OAuth callback failures from leaking transient secrets, splitting runtime/keyring state, or discarding retryable login state.
  • Prevented xAI spending-limit Retry-After headers from becoming timed resets, and prevented ordinary xAI 429 Retry-After windows from burning adapter retries instead of entering cooldown.
  • Hardened Lean setup with probe-verified Git auto-installation and an authoritative Git/Lean/Lake capability gate that persisted settings cannot override.
  • Prevented submitter-count resets, stale role auto-fill overwrites, and legacy submitter-ID failures in Aggregator and Autonomous settings.
  • Prevented rejected proof-list regeneration from looping indefinitely on valid no-candidate results; empty rounds now use the existing Live Activity format and count toward normal 10-round completion.
  • Retried successful but malformed OpenRouter responses with missing, empty, or invalid completion choices before workflow backoff; preserved typed transient and context-limit handling across Compiler, Autonomous proof checkpoints, and manual “Try to prove this” runs so provider failures cannot become semantic rejections or opaque local retry stalls.
  • Prevented live-context proof pruning from leaving stale verified-proof blocks in an active proof round; subsequent candidate discovery, regeneration, formalization, and checkpoint continuation now rebuild owning-run proof context from the current proof-set revision without altering in-flight model calls.
  • Resolved the frontend npm audit warnings shown at launch by updating KaTeX to 0.19.0 (GHSA-238p-pmpm-9mq7) and source-map-js to 1.2.2 (GHSA-68fv-2mgg-jv7q) in the lockfile, and updated rendered-math styling for KaTeX's renamed classes.
  • Fixed OpenAI Codex turns longer than 15 minutes never completing: the Codex backend closes HTTP/SSE streams at roughly 900 seconds, so Codex completions now stream over the Responses WebSocket transport used by the Codex CLI, falling back to SSE only when the handshake is rejected; Live Activity names the transport on each retry.
  • Fixed proof-check Live Activity going silent after a browser tab froze, was discarded, or reloaded: proof runs now number their activity in a bounded backend journal, and the tab replays only the events it missed after reconnecting or resuming, without duplicates or changes to run status.

Developer Features

  • Modernized the removable cross-field workflow testing overlay with production-backed lifecycle, pruning-preservation, live activity log checks, and automatic proof-round coverage.

  • Added fail-closed SyntheticLib compatibility evidence with canonical receipts, contract tests, and isolated local release verification.

  • Hardened SyntheticLib contract evidence with exact unpublished-state validation, rollback-safe publication, non-destructive retained output, and expanded semantic-forgery regression coverage.

  • The program now adopts .claude modularized rules format for Claude Code users instead of .cursor rules format for Cursor users. If needed, the rules can be easily converted by any forks or local developers.

    Authored by Patrick White, Patrick@Intrafere.com

Pat and others added 17 commits September 3, 2026 17:58
## Changes

- Increased automatic brainstorm proof checks from one to two rounds when Mathematical Proofs and Paper Writing are both enabled. Proofs-only checks remain capped at four rounds, and completed-paper checks remain single-round.

## Bug Fixes

- Fixed mandatory proof discovery, proof solver, and Validator context overflows failing to stop continuous proof loops. Autonomous runs now cancel sibling work, preserve a recoverable checkpoint, and show a route-specific model-context notification; repaired role settings resume without stale overflow state.

  Authored by Patrick White, Patrick@Intrafere.com
Signed-off-by: Intrafere Research Group <208883623+Intrafere@users.noreply.github.com>
Signed-off-by: Pat <pat@local>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Pin *.sha256 to LF so Windows checkouts keep the detached receipt digest byte-exact.
- Regenerate the preflight attestation and bundle manifest from LF verifier source.
- Classify the Codex websocket event-loop stall monitor as a non-retry wait.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Translate unavailable OS keyring errors into InstallationIdentityError so
  proof storage degrades to unqualified records instead of failing outright.
- Isolate tests from the real installation-global keyring entry with a
  per-test in-memory identity store; add keyring-unavailable regressions.
- Make the launcher Git reprobe test platform-independent.
- Install frontend dependencies in the Python CI job for Vitest selector evidence.
- Move RELEASE_ROOT out of job-level env (runner context is not allowed there),
  which made GitHub reject the release-evidence workflow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Relocate the credential-free compatibility evidence to
  syntheticlib-trade/compatibility/ and keep PLANS/ fully private.
- Allowlist only the approved evidence members at the new location and
  guard against re-allowlisting anything under PLANS/.
- Point the verifier, both workflows, tests, and rules at the new path;
  regenerate the verifier-hash-bound evidence members.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Make novelty the only admission gate across proof discovery, follow-up
  proof rounds, failed-proof hints, proof framing, novelty ranking, rigor
  discovery, the brainstorm submitter and Validators (including Lean-verified
  rules and the cleanup keep list), topic selection/validation/exploration,
  completion review, and paper continuation. Whole-question attacks stay
  first in priority; genuinely novel incremental or indirect progress toward
  the user prompt is now accepted, while known, routine, trivial, redundant,
  and no-path results stay rejected. Rules updated; guard tests added.
- Number published proof-run activity in a bounded process-local journal and
  add GET /api/proofs/runs/{proof_run_id}/activity so reloaded or resumed
  tabs replay missed Live Activity once without driving run state
  (api_contract_version build6-v120).
- Seal compile receipts over their JSON serialization; receipts sealed by
  v1.1.08 over raw datetimes are accepted and re-sealed on store instead of
  failing as invalid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
App-level proof-run activity recovery (e2571d7) lists runs via
GET /api/proofs/runs on every WebSocket connect. The Playwright fake
backend did not mock that route, so six smoke specs failed their
no-unexpected-requests assertion in CI. Return an empty
ProofRunCollectionResponse-shaped collection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Formalization, tactic-script, Lean placeholder, and brainstorm proof-gate
repair wording now refer to the selected target instead of a
"high-impact target", and ask for the precise formal reading that best
preserves the source claim rather than permitting a narrowed lemma. The
Aggregator Lean route prefers the highest-impact theorem the submitter
can completely prove, and relevance rationales say "plausibly helps".
Adds a regression test that formalization prompts carry no contradictory
narrowing guidance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Failed proof targets are no longer re-run unchanged in a separate retry
pass after each completed paper. Discovery now sees unresolved targets
(the brainstorm's own, or a completed paper's source brainstorms') as
open targets and may link a materially different retry through a
validated retry_open_target_id, which resolves or updates the original
FailedProofCandidate. Discovery and rigor prompts weigh direct solutions
against the 5-attempt Lean budget and fall back to the strongest
provable novel piece.

Also raises the default Lean proof timeout to 2000s (migrating the old
600/900 shipped defaults), and adds a Codex >15-minute known-issue
warning with a safe external link to the 1.1.08 release notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A broken or unusable Lean/Mathlib workspace is now a typed repair stop
(LeanWorkspaceRepairRequiredError) rather than proof feedback, a failed
open target, or a spent attempt. Autonomous, Aggregator, Compiler,
LeanOJ, and manual proof checks stop with a durable
lean_workspace_repair_required message and keep their checkpoint;
Autonomous saves the round as resumable lean_workspace_blocked. Lean-bound
model calls are skipped when setup is known failed, and each proof
round, rigor cycle, and final-solver attempt gives a failed setup one
fresh retry first. Stored workspace failures from older builds are
filtered out of attempt history, failure hints, and Live Activity.

On Windows, when <data root>/lean4_workspace is too long for Mathlib's
build files, the workspace moves to a per-data-root folder under
%LOCALAPPDATA%\MOTO\lean and the launcher removes the unusable in-root
MOTO workspace. If no short location exists, the launcher disables Lean
with lean_workspace_path_too_long and the path problem is latched before
any lake work.

Bumps api_contract_version to build6-v121 for the new WebSocket event.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A later status write could reopen a run whose terminal event was already
published (for example a repair-required stop followed by a stray
"stopping" update), so the source looked busy again. The run manager now
ignores status changes once a run is terminal, the frontend merge keeps a
terminal snapshot over a stale same-generation one, and the repair
guidance also shows when the backend ends a repair run as status "error".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- py/weak-sensitive-data-hashing (high): the OpenRouter validation state
  was keyed by a SHA-256 of the API key. It now keeps the validated key in
  memory, like rag_config already does, and compares with
  hmac.compare_digest, so no credential is hashed.
- js/prototype-polluting-assignment (medium) and
  js/remote-property-injection (high, extended suite): the proof-run
  activity tracker stored cursors in a plain object keyed by run ID, so a
  run ID of "__proto__" wrote onto Object.prototype. It now uses a Map and
  persists the same JSON shape.

Verified with CodeQL 2.27.2 locally (actions, python,
javascript-typescript; default and security-extended suites): no alerts
beyond those already on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Intrafere
Intrafere merged commit d825b96 into main Oct 15, 2026
10 checks passed
@Intrafere
Intrafere deleted the dev/moto-v1.1.08 branch October 15, 2026 02:40
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.

1 participant