Skip to content

docs: one current answer per platform fact, and a prose rule that holds it - #598

Merged
laithalsaadoon merged 5 commits into
mainfrom
docs/one-current-fact
Oct 12, 2026
Merged

laithalsaadoon merged 5 commits into
mainfrom
docs/one-current-fact

Conversation

@laithalsaadoon

@laithalsaadoon laithalsaadoon commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

What and why

Coding agents read these docs, and a page that gives two answers to one question is a
hazard. Until now the rule was the opposite: a measurement that contradicted an entry was
appended beside it, and the old one stayed. This change sets the new rule and applies it.
A measurement that contradicts an entry replaces it, the entry keeps its date, region and
API version, and git history holds the old one.

  • The rule. Changed in .github/PULL_REQUEST_TEMPLATE.md (Platform claims),
    .github/ISSUE_TEMPLATE/platform_finding.md, AGENTS.md, CONTRIBUTING.md,
    site/authored/learn/operations/run-the-live-suite.md section 7, site/authored/agents.md,
    site/authored/internals/index.md, docs/STRATEGY.md, docs/README.md, and the
    drive_platform_posture docstring.
  • docs/PLATFORM.md, one entry per fact. These are merged, keeping their dates: the
    duplicate WebSocket heading, the two 4096-byte runHookPayload sections, the two
    suspend/resume sections (the ticker reads as one fact: no tick lost, timestamps skip the
    suspended time), and the outside-poll measurements from 08-15 and 09-24. Also merged:
    tagging, snapshotBuild, the base-image version sections, and the two GetMicrovm
    sections, plus the suspend and resume latency from both days. Every "corrects the earlier",
    "Later evidence" and "this refresh" sentence is gone. The preamble names al2023-1 built
    from amazonlinux:2023-minimal.
  • The suspended window, measured live on 2026-10-12 (us-east-1, API 2025-09-09,
    autoResumeEnabled false). suspendedDurationSeconds ends a VM that the idle policy
    suspended: TERMINATED about 60 s after suspending, then ResumeMicrovm was refused.
    Two VMs with the idle case's exact policy (maxIdleDurationSeconds 60,
    suspendedDurationSeconds 60), suspended by an explicit SuspendMicrovm, stayed
    SUSPENDED 906 s and 917 s and resumed within 20 s; so did a third with a 3600 s idle
    limit, at 1283 s. AWS describes the window for any suspended VM, so PLATFORM and
    SUSPEND-RESUME call the explicit case measured behavior AWS doesn't promise. Seven site
    pages say the same.
  • Other single answers. The PT5M ready-hook timeout no longer reads as a five-minute
    platform cap (its configured timeout wasn't recorded; the model allows 3600 s).
    PROTOCOL states once when an exec has PATH and HOME. The SUSPEND-RESUME idle
    attribution is fixed (08-15 was an idle sleep, not a CPU-busy exec). Its identity text,
    and the glossary's, match the run-hook repair and the --repair-identity capabilities.
  • The guard. Microvms.CorrectionTrail, an error-level Vale rule that prose:check
    runs over every maintained page, rejects correction-trail phrasing: a bold or dated
    correction, update or erratum, a re-measure next to a date, an earlier claim or
    measurement kept or superseded, "this refresh did". Its tokens match across soft line
    breaks, and ordinary words ("retained in CloudWatch", "error correction:", "the original
    description") pass. The test runs real Vale over 32 sentences, both kinds. Two passages
    it found are fixed: examples/background-coding-agent/README.md and docs/STRATEGY.md's
    "Corrections to the initial proposal", now the guidance it led to.
  • Two broken heading citations fixed: .config/mise/tasks/live.toml and docs/PROTOCOL.md.

#594 merged as 944577f, and this branch is rebased onto it; it was stacked on #594. #594 rewrites PLATFORM's
capability, identity-snapshot and MMDS sections and TRUST's identity-repair and
execution-role passages, and this branch leaves them as #594 has them. The rule needs that
rewrite to pass with no exemptions, so this merges after #594, and its base then becomes
main.

Evidence

Guards

prose-correction-trail: changed level: error to level: suggestion in
.vale/styles/Microvms/CorrectionTrail.yml, so trail phrasing passed the gate unseen, and
test_correction_trail_phrasing_is_an_error failed. guards:fire -- --only prose-correction-trail
printed fired: prose-correction-trail on 3582b33 and again on a9adb04.

Follow-ups

  • The client fix for the suspended window, core: resume refuses an explicitly suspended VM past suspendedDurationSeconds, which the service still resumes #597, owns these product lines. Each
    says a resume past the window can't work, or that the window ends any suspended VM:
    crates/microvms-cli/src/cli.rs:304, :1057, :2506; crates/microvms-cli/src/config.rs:86;
    crates/microvms-cli/src/exit.rs:257; crates/microvms-cli/README.md:51-53;
    crates/microvms-domain/src/error.rs:133; crates/microvms-app/src/sandbox.rs:35-40 and
    :1754-1760 (require_open_suspended_window); bindings/microvms-py/src/errors.rs:88-90;
    bindings/microvms-py/microvms.pyi:1383, :3850-3854; bindings/microvms-js/index.d.ts:1000,
    :2000; bindings/microvms-js/src/sandbox.rs:1148; bindings/microvms-js/src/control.rs:32;
    bindings/microvms-py/src/control.rs:42; verify/spec/core.symspec.json:844-851; and the
    generated docs/reference/cli.md:59, :170, docs/manifest.json:4626,
    docs/TRACEABILITY.md:1203-1210, docs/insights/contract-map.md:79.
  • Lower .vale/warnings.json ceilings to the new counts once this and the open agentd: an image-set default user for execs and run-path starts #595 and core: resume refuses an explicitly suspended VM past suspendedDurationSeconds, which the service still resumes #597
    changes land, so each rule's ceiling is counted once.
  • Binding docstrings say al2023-1 was used "from 2026-08-06 onward"; PLATFORM records it on
    2026-08-05 (bindings/microvms-js/src/sandbox.rs:256, bindings/microvms-js/index.d.ts:1651,
    bindings/microvms-py/src/sandbox.rs:386, bindings/microvms-py/microvms.pyi:310,
    conformance/harness/image.py:36).
  • crates/microvms-app/src/control/microvm.rs:709 cites a PLATFORM heading that doesn't exist
    ("A MicroVM that dies during startup reports a connection error that hides the cause").
  • The PT5M ready-hook reason has no recorded readyTimeoutInSeconds; one live build with a
    timeout above 300 s would settle whether five minutes is a platform cap.
  • The two build-log sections ("The build log group survives Terraform", "Build logs go to")
    stay separate: they state different facts, and code cites each heading.

Platform claims

  • A docs/PLATFORM.md entry changed, and it carries a date, a region, and
    an API version.
    A new measurement replaces any entry it contradicts,
    in this file and in other docs. Git history keeps the old one.

Scope

  • This is not an orchestrator or a fork implementation
    (see docs/STRATEGY.md).

@laithalsaadoon
laithalsaadoon force-pushed the feature/strands-box-codex-sdk branch from 64cb991 to 7ff4973 Compare October 12, 2026 18:36
laithalsaadoon added a commit that referenced this pull request Oct 12, 2026
… not common words

Review of #598 ran Vale with only this rule. It raised errors on ordinary
sentences ("Logs are retained in CloudWatch", "Error correction: the client
retries once", "Pass the original description", "A finding is re-measured
before it replaces an entry") and missed any phrase split by a soft line
break, plus "**Update, <date>:**", "An earlier measurement said", "Previously
this page said", "This supersedes the <date> entry", and "Erratum:".

Each token now allows any whitespace between its words and names the trail
itself: a bold or dated correction or update, a re-measure next to a date, a
claim or measurement that's kept or replaced. The test covers the wrapped
phrases, the new trail forms, and the ordinary sentences, which pass.

Two passages the old rule missed now state the current fact:
examples/background-coding-agent/README.md points at the dated live evidence,
and docs/STRATEGY.md's "Corrections to the initial proposal" is the guidance
it led to.
laithalsaadoon added a commit that referenced this pull request Oct 12, 2026
…fixed

Review of #598 found the 2026-10-12 sample changed two settings between its
cases: the idle-suspend VM had maxIdleDurationSeconds 60 and the explicit one
3600, so a window counted from when the idle timer would have fired could also
explain the 1283 s hold. Two more VMs, measured 2026-10-12 in us-east-1 (API
2025-09-09), used maxIdleDurationSeconds 60 and suspendedDurationSeconds 60,
the idle case's settings, and an explicit SuspendMicrovm within 10 s of
RUNNING. Both stayed SUSPENDED for 906 s and 917 s with stateReason null, and
ResumeMicrovm brought both to RUNNING within 20 s.

PLATFORM.md's table carries all three explicit-suspend rows, and PLATFORM.md
and SUSPEND-RESUME.md say that AWS describes the window for any suspended VM,
so the explicit case is measured behavior AWS doesn't promise.
…ds it

Agents read these docs, and a page that gives two answers to one question is a
hazard. A measurement that contradicts an entry now replaces it; git history
holds the old one.

- PLATFORM.md: merge the duplicate WebSocket, runHookPayload, snapshotBuild,
  base-version, GetMicrovm, tagging, keepalive and suspend sections into one
  entry each with their dates, and drop the correction-trail sentences.
- The suspended window: the 2026-10-12 re-measure shows it ends a VM the idle
  policy suspended, and an explicit SuspendMicrovm held a VM 21 times past it
  with resume working (two samples). PLATFORM, SUSPEND-RESUME and the site
  pages state that.
- The PT5M ready-hook timeout no longer reads as a platform cap; the exec
  PATH/HOME cases are one statement in PROTOCOL; SUSPEND-RESUME's idle
  attribution and identity text match the current daemon.
- The rule changes in the PR template, the issue template, AGENTS.md,
  CONTRIBUTING.md, the live-suite page, the agents page and the internals index.
- Microvms.CorrectionTrail, an error-level Vale rule in prose:check, rejects
  the phrasing a kept-alongside correction leaves. Seeded fault
  prose-correction-trail proves it fires. .vale.ini exempts the three passages
  PR #594 rewrites until it merges.
- Two broken heading citations fixed (live.toml, PROTOCOL.md).
…nger needs

This branch is stacked on #594, whose rewrite of the capability, snapshot and metadata passages
removes the three phrases the exemptions covered, so Microvms.CorrectionTrail holds with none.
… not common words

Review of #598 ran Vale with only this rule. It raised errors on ordinary
sentences ("Logs are retained in CloudWatch", "Error correction: the client
retries once", "Pass the original description", "A finding is re-measured
before it replaces an entry") and missed any phrase split by a soft line
break, plus "**Update, <date>:**", "An earlier measurement said", "Previously
this page said", "This supersedes the <date> entry", and "Erratum:".

Each token now allows any whitespace between its words and names the trail
itself: a bold or dated correction or update, a re-measure next to a date, a
claim or measurement that's kept or replaced. The test covers the wrapped
phrases, the new trail forms, and the ordinary sentences, which pass.

Two passages the old rule missed now state the current fact:
examples/background-coding-agent/README.md points at the dated live evidence,
and docs/STRATEGY.md's "Corrections to the initial proposal" is the guidance
it led to.
…fixed

Review of #598 found the 2026-10-12 sample changed two settings between its
cases: the idle-suspend VM had maxIdleDurationSeconds 60 and the explicit one
3600, so a window counted from when the idle timer would have fired could also
explain the 1283 s hold. Two more VMs, measured 2026-10-12 in us-east-1 (API
2025-09-09), used maxIdleDurationSeconds 60 and suspendedDurationSeconds 60,
the idle case's settings, and an explicit SuspendMicrovm within 10 s of
RUNNING. Both stayed SUSPENDED for 906 s and 917 s with stateReason null, and
ResumeMicrovm brought both to RUNNING within 20 s.

PLATFORM.md's table carries all three explicit-suspend rows, and PLATFORM.md
and SUSPEND-RESUME.md say that AWS describes the window for any suspended VM,
so the explicit case is measured behavior AWS doesn't promise.
@laithalsaadoon
laithalsaadoon changed the base branch from feature/strands-box-codex-sdk to main October 12, 2026 20:59
@laithalsaadoon
laithalsaadoon marked this pull request as ready for review October 12, 2026 21:19
Copilot AI balanced review requested due to automatic review settings October 12, 2026 21:19
@laithalsaadoon
laithalsaadoon merged commit f410ec2 into main Oct 12, 2026
34 of 63 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

laithalsaadoon added a commit that referenced this pull request Oct 12, 2026
…base

The six FAIL_TO_PASS patches reverse every product hunk of this fix, so the help-text change and the rebase onto main (f410ec2, #598 squashed) left them unable to apply. fail-to-pass.py's fix_patch regenerated them against the new merge base.
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.

2 participants