Skip to content

Model the MegaRAC SP-X operation surface from the committed 255-endpoint artifact - #11127

Closed
gunbai-bot[bot] wants to merge 27 commits into
mainfrom
session/jolly-bear-144
Closed

gunbai-bot[bot] wants to merge 27 commits into
mainfrom
session/jolly-bear-144

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Extends extdeps.bmc.megarac with the firmware 0.32 served-UI catalog (committed artifacts/bmc/mtcollins1-megarac-api-surface.txt, sha256 4fc53fea…) rather than forking a second BMC home.
  • Models the facts that were relearned by hand: NFS-client media route and required image_redirection:1; cd_active_sessions as a flag byte with no session-count constructor; dual console recorders (framebuffer vs SOL) with upstream chasis_/chassis_ spellings and reset survival vs live sol activate; first-class absences keyed to this served UI (no Redfish, no BIOS/UEFI settings surface, no per-DIMM FRU/telemetry, controller renderer returns OEM description unknown); web vs IPMI event-log layouts so GenID cannot be a sender; redirection_status enum keyed to firmware identity 0.32.
  • Attempt observation for SOL lives in gunbc.machine_intake_sol_collector_observation: an unacknowledged session cannot construct complete coverage, and sol_host_fact_from_collector never treats incomplete coverage as host silence. Platform capability (PreOsObservationCapabilities) stays with gunbc#11110. Ampere OEM SEL producer layout (sensor 0xEB) is extdeps.ampere.oem_sel and does not cover 0xDE records. Policy (which intake step calls which endpoint) stays out of extdeps.

Test plan

  • Hermetic MegaRAC operation-surface witnesses (redirection enum, recorders, absences, event-log layouts, SOL coverage adjudication)
  • Wet hash of the committed 255-path artifact and DRAM-training SOL capture (megarac_spx_ui_surface_artifact_integrity_witness)
  • Required CI on this PR

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64255 (dashboard-only REQUEST_CHANGES) on this head:

  • Nullary Bool fact-functions are gone. Media role, reset survival, event-log layout, and served-UI absences are profile data; absences are looked up on the 0.32 roster so dropping a row reds, and an uncatalogued firmware still refuses rather than inheriting.
  • Firmware identity goes through bmc_firmware_release_identity_eq against megarac_firmware_0_32 (no second "0.32" compare).
  • The 255-path artifact is hashed: committed_spx_ui_surface_hashes_to_the_catalog_identity ran wet against artifacts/bmc/mtcollins1-megarac-api-surface.txt. Hermetic discovery cannot fabricate sha256sum, so that witness is an OfflineLocalRecipe beside the other live-artifact integrity rows.
  • Unused PreOs axes are a declared frontier (consumer: gunbc#11110 bring-up verdict). megarac_sol_host_observation_admitted deleted. Duplicate import removed.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Verified review 64255 against current head d87cbd04323 (the review itself ran on 46f13e3cc2f).

Both findings are already discharged; no further code change.

  1. The named nullary functions (megarac_remote_media_uses_pxe, megarac_live_sol_activate_survives_reset, megarac_recorder_survives_reset, megarac_served_ui_has_*) are not in the tree. Media role, recorder vs live-SOL survival, and served-UI absences are 0.32 profile data. Absences go through megarac_served_ui_absence_standing: dropping a roster row reds; an uncatalogued firmware is ServedUiFactFirmwareUncatalogued. Recorders vs live SOL are SurvivesHostAndControllerReset vs DiesOnReset and are compared to each other.

  2. The hermetic 255/sha256 literal-vs-literal witness is gone. committed_spx_ui_surface_hashes_to_the_catalog_identity hashes artifacts/bmc/mtcollins1-megarac-api-surface.txt via sha256sum_verify_via_shell against megarac_spx_ui_surface_sha256. Editing the bytes without the digest reds; editing the digest without the bytes reds.

Prior reply on b221a4eca8c recorded the same discharge. Parent retract of silent-SOL as a host fact is a later commit on this head and does not restore the tautologies.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64302: deleted the unread rows.

  • megarac_spx_ui_source_min_js_sha256 and megarac_spx_ui_endpoint_count — source.min.js digest and 255 remain only in the catalog comment; the executing identity is the hashed path list.
  • MegaRacObservationChannel / megarac_observation_channels — no fold read them; recorder vs live-SOL survival already has consumers.
  • megarac_sol_host_payload_positive_control_byte_count — 3764 was a transcription; the wet hash of the capture is the instrument.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64319.

Deleted media_route_is_bmc_nfs_client_not_pxe, cd_active_sessions_cannot_be_read_as_a_count, and the one-arm megarac_gen_id_as_sender match. Also deleted megarac_cd_active_sessions_session_count / MegaRacCdActiveSessionsIsNotACount and megarac_gen_id_as_sender / MegaRacGenIdIsNotASender — those functions restated singleton coproducts.

The modeling stays: MegaRacRemoteMediaRole has no PXE constructor, MegaRacCdActiveSessionsField has no count constructor, GenID has no Sender constructor. Web vs IPMI layouts remain a discriminating inequality. Uncatalogued-firmware refusals were already the RED.

megarac_remote_media_role, megarac_cd_active_sessions_flag_byte, and megarac_gen_id_standing are a named §3c frontier (media-attach / instance/SEL-read workflow), not a one-arm witness.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64346.

  • terminate_deadline is now std.measure Second (second(count: 645)). The field no longer names the unit on a bare Duration.
  • Deleted unread GetMediaInstance / GetEventLog / GetVideoTriggers / GetSolTriggers and the seven extra megarac_api_operations rows this PR had added. Media attach still uses the pre-existing megarac.Media session/media ops. Flag-byte, recorder survival, chasis_/chassis_ wires, and web vs IPMI layouts remain as typed facts.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64359.

  • ChassisPowerOnEventsEnable / ChasisPowerOnEventsEnable are one coproduct; megarac_trigger_power_on_field_wire is the only spelling. The witness compares the two inhabitances and their wires to each other, not a string to itself.
  • Deleted megarac_redirection_is_started / megarac_redirection_is_connecting, ampere_oem_sel_producer_layout_covers_sensor, sol_activation_acknowledged_without_coverage, and megarac_incomplete_sol_coverage_is_not_a_host_fact. Callers match the coproducts / field equality.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Floor on c26d109 refused at parse: trailing // after sol_host_fact_from_collector named no subject (DESIGN §4c). Notes are now a leading block on SolCollectorCoverageStanding (1a2ff78015f).

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64397.

SolCollectorSessionAcknowledged no longer carries a free termination beside coverage. Complete coverage is the unit SolCoverageComplete (deadline terminated the client). Still-running-past-deadline is its own unit. Never-established and interrupted carry termination. Complete × still-running and Complete × stdin-EOF have no constructor.

sol_host_fact_from_collector on an unacknowledged session is SolSessionNeverAcknowledged, never SolHostProducedNoConsoleBytes. Incomplete acknowledged coverage with no payload remains SolCollectorDidNotEstablishCoverage.

The executing RED that remains authorable is still-running-past-deadline with no payload. The old Complete × StillRunning product is unconstructible in the accepted corpus; no compiler fixture harness for that product is enrolled — that missing harness is the next-rung trigger.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Verified review 64397 against current head 540a53d6a9a (the finding was on 1a2ff78015f).

The cited product is gone. SolCollectorSessionAcknowledged no longer has a free termination field beside coverage. SolAcknowledgedCoverage is:

  • SolCoverageComplete — unit; deadline termination is the meaning of the arm, not a sibling field
  • SolCoverageStillRunningPastDeadline — unit
  • SolCoverageNeverEstablished { termination } / SolCoverageInterrupted { termination } — termination only here

SolCoverageComplete × CollectorStillRunning and SolCoverageComplete × stdin-EOF have no constructor. sol_host_fact_from_collector cannot see those pairs.

Authorable controls that stay enrolled:

  • unacknowledged_session_never_claims_the_host_produced_no_bytes → SolSessionNeverAcknowledged, not SolHostProducedNoConsoleBytes
  • still-running-past-deadline + no payload → SolCollectorDidNotEstablishCoverage (sol_host_payload_is_admitted_while_coverage_is_still_past_deadline)
  • complete + no payload → SolHostProducedNoConsoleBytes only on the complete unit (incomplete_sol_coverage_is_not_a_host_silence_fact)

The old Complete × StillRunning record is unconstructible in the accepted corpus. No compiler fixture harness for that product is enrolled; that missing harness is the next-rung trigger, not a permanent ceiling.

— sent from jolly-bear-144

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64462: MegaRacConsoleRecorderSubject is no longer dangling.

megarac_recorder_reset_survival and megarac_recorder_trigger_power_on_field match on FramebufferRecorder / SolStreamRecorder. The inhabitances and the recorder witness call those folds. Live sol activate stays a separate DiesOnReset row — it is not a recorder.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64475 on f1bfe37b728.

  • Ampere IANA PEN is the single fact (ampere_iana_private_enterprise_number). LE manufacturer-ID bytes on ampere_oem_sel_producer_layout are ampere_pen_le_octet of that PEN (place 1 / 256 / 65536). The equality predicate is gone, so there is no second declaration to edit. The remaining witness is sensor 235 ≠ 222.
  • Dropped megarac_remote_media_role, megarac_cd_active_sessions_flag_byte, and megarac_gen_id_standing rather than keep a nameless §3c frontier. NFS-client vs PXE stays in the media-config comment; web vs IPMI layouts stay as consumed inhabitances.
  • MegaRAC integrity exclusion now uses excl_local_repo_wet_tempdir_write_dissolve (Mktemp.Dir / Filesystem.Write / sha256sum_verify_via_shell). Git-plumbing excl_local_repo_wet_dissolve is unchanged for the repository-wet rows.
  • path_roster_contains deleted; the BIOS-adjacent path check uses v2.std.algebra any.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64482 on 90ca66d1f0f.

configuration_row_confirms no longer treats every nonzero redirection_status as attached. The wire is parse_int'd, then megarac_redirection_status_of_wire for the caller firmware, then megarac_redirection_presents_media: only started (1) and connecting (100) confirm. Stopped, denial codes 2–5, vendor-rendered stopped, an unparseable status, and an uncatalogued firmware cannot. Mt. Collins passes megarac_firmware_0_32. Witness denial_and_vendor_stopped_cannot_confirm_attachment is the RED.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64507 on fb95e4b3edd.

  • Attach now passes mtcollins1_firmware (the unit observation), not megarac_firmware_0_32. The decoder still catalogues 0.32; if the observation's raw_version moves, confirmation is RedirectionStatusFirmwareUncatalogued and cannot confirm.
  • The 255-path artifact is paths only. It is no longer cited as the status map. Named codes are 0 / 1 / 100 as returned in committed observations (mtcollins1-media-independence-probe.log, mtcollins1-diskless-boot.json, mtcollins1-virtual-media-boot.json, census samples). Codes 2–5 are not in any committed UI excerpt (this lane does not fetch the BMC), so they are RedirectionWireUncatalogued and cannot present. I did not author a reconstructed source.min.js snippet.

gunbc-ci-auto-heal and others added 16 commits September 12, 2026 10:39
Cite firmware 0.32's served UI so redirection_status, media flag-bytes, recorder field spellings, event-log layouts, and first-class absences (no Redfish, no BIOS settings, no per-DIMM FRU, no OEM SEL decode) cannot be rediscovered by hand. A present-but-silent SOL channel refuses as a host fact via PreOsObservationCapabilities.

Co-authored-by: Cursor <cursoragent@cursor.com>
Collapse nullary fact-functions into 0.32 profile rows, join firmware identity through bmc_firmware_release_identity_eq, and hash the committed 255-endpoint artifact rather than comparing two authored literals. Unused PreOs axes are a named #11110 frontier; the silent-SOL refusal stays the executing console reader.

Co-authored-by: Cursor <cursoragent@cursor.com>
The 86-byte SOL banner was the collector exiting on stdin EOF, not host
silence. Console standing is now collector coverage vs host payload, and
Ampere OEM SEL layout lives in extdeps.ampere rather than a MegaRAC absence
about the records.

Co-authored-by: Cursor <cursoragent@cursor.com>
…to 0xEB.

The 3764-byte capture is the positive control that this MegaRAC delivers host
console bytes. Coverage now has a terminating deadline and a still-running-
past-deadline arm, and the OpenBMC producer layout is keyed to sensor 0xEB
so 0xDE payloads cannot resolve through it.

Co-authored-by: Cursor <cursoragent@cursor.com>
Those values were already in comments or in the hashed artifacts; unused
data rows were a second transcription with no consumer.

Co-authored-by: Cursor <cursoragent@cursor.com>
NFS-client media, flag-byte-not-count, and GenID-not-sender stay
unrepresentable by construction. The enrolled checks are the ones that
refuse a second firmware or a second layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
Platform PreOs capability stays with #11110; this PR no longer mints
pre_os_observation_capabilities.dag.

Co-authored-by: Cursor <cursoragent@cursor.com>
The deadline is std.measure Second, not a Duration named in seconds.
Instance, event-log, and recorder GETs had no consumer, so they are not
on this PR; the typed surface facts stay.

Co-authored-by: Cursor <cursoragent@cursor.com>
Video and SOL power-on field names share one coproduct and one wire
reader. Redirection, sensor coverage, and incomplete SOL coverage are
matched as coproducts rather than collapsed to Bool.

Co-authored-by: Cursor <cursoragent@cursor.com>
An unacknowledged stdin-EOF session can no longer inhabit Complete and
cannot yield host-produced-no-bytes. The 02:37Z capture stays the
positive control for payload while still running past the deadline.

Co-authored-by: Cursor <cursoragent@cursor.com>
…odule.

Trailing // after the last fn named no subject and refused the floor at parse.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ll running.

Complete coverage is the deadline having terminated the client, so a still-running
or stdin-EOF termination cannot occupy the same record and cannot mint host silence.

Co-authored-by: Cursor <cursoragent@cursor.com>
Hermetic discovery has no Dir mock for sha256sum_verify_via_shell, so the new
identities never reached a verdict. Enroll the executing route, not the gap.

Co-authored-by: Cursor <cursoragent@cursor.com>
The extra brace after dissolve made the frontier list unparseable, so heal and
the floor never produced a receipt.

Co-authored-by: Cursor <cursoragent@cursor.com>
…bject.

MegaRacConsoleRecorderSubject had no call site; the two recorder rows now
select through it instead of standing beside an unused coproduct.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ve the SHA witness on Mktemp.Dir.

The manufacturer-ID bytes were a second spelling of IANA 52538; they now derive as LE octets. The unused media-role, cd_active_sessions, and GenID constructors had no named consumer, so they delete rather than sit as a nameless frontier. The wet exclusion's trigger now names the tempdir write this witness actually reaches.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbc-ci-auto-heal and others added 3 commits September 12, 2026 10:39
Nonzero is not attached: denial and vendor-stopped codes are nonzero and were treated as success. Confirmation now parses the wire, decodes it for the caller firmware, and admits only started or connecting.

Co-authored-by: Cursor <cursoragent@cursor.com>
…#11137 wave row.

Media attach resolved `any` through MegaRAC's blanket import after that module started using algebra — a pool coincidence, not an authored reference. #11137 already merged, so its admission matched no delta on this run and refused as stale.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ed status codes.

Mt. Collins was passing the 0.32 catalog identity, so an updated observation would still decode as 0.32. The path catalog does not contain status mappings; 2–5 were not in any committed excerpt, so they are an uncatalogued wire rather than named UI denials.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot force-pushed the session/jolly-bear-144 branch from fb95e4b to a57c700 Compare September 12, 2026 10:40
…e catalog bytes.

The 255-path artifact lists AEP DIMM and FRU endpoints; calling those absent from the served UI was a meaning fork. Catalog presence and Redfish/settings/bios absence are now grepped from the hashed file on the wet lane instead of echoed from an authored list.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64523 on a2d57fd1c90.

  • PerDimmFruAndTelemetryAbsentFromServedUi deleted. The catalog carries api/aep_inventory/aep_dimm_info and api/fru; a quiet answer on those paths is a unit observation, not a missing served-UI path. MegaRacWebEventLogOemDescriptionUnknown left the absence coproduct for the same reason (renderer answer ≠ path absence). Remaining catalog-keyed absences are Redfish and BIOS settings (flash/version paths stay).
  • Deleted served_ui_absences_are_first_class_at_0_32 (list membership of the same list). Wet witness committed_spx_ui_surface_redfish_absent_fru_and_aep_dimm_present reads the hashed catalog: no redfish, no settings/bios, and aep_dimm_info / api/fru / getbiosversions present. Uncatalogued-firmware refusal stays hermetic.

The layout row was only restated by a witness. ampere_oem_sel_record_match is the decode step: 3A CD 00 at sensor 235 is this layout, 0xDE is outside it, and a zero manufacturer id is not Ampere's PEN. The executing consumer is the PreOs OEM-decode/SEL axis on gunbc#11110.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64529 on d0eafab876f.

The layout is no longer only restated. ampere_oem_sel_record_match classifies a (sensor, manufacturer-id) triple: 3A CD 00 at sensor 235 is AmpereBootSyndromeOemSel (that is the derived PEN octets vs the published LE encoding); sensor 222 with those bytes is AmpereOemSelSensorOutsideLayout; a zero manufacturer id is AmpereOemSelManufacturerIdNotThisPen. Making the layout cover 0xDE, or breaking ampere_pen_le_octet, reds.

§3c frontier: the executing consumer is the PreOs OEM-decode / SEL axis in gunbc.machine_intake_pre_os_observation_capabilities on gunbc#11110 (this PR still does not mint that file).

A Bool "presents media" mapped decoder ignorance to false, which licensed StartMedia. Unknown firmware and wire now stay Unreadable through confirmation.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64542: megarac_redirection_presents_media collapsed uncatalogued firmware/wire to false, and presented_media_standing then treated that as PresentedMediaNotAttached → StartMedia.

megarac_redirection_presentation_standing now distinguishes RedirectionPresenting / RedirectionKnownStopped / RedirectionPresentationUnknown. Only known stopped (and other evidenced non-presenting rows) map to NotAttached. Unknown standing, missing/unparseable status, and a named row that is not CD media_type 1 stay PresentedMediaUnreadable → MegaRacConfigurationsUnreadable (no StartMedia, and not a post-start retry).

HEAD 99587f6b88e.

Path and digest are a repository observation, not an AMI fact; extdeps.bmc.megarac keeps only firmware-keyed surface facts.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64548: megarac_spx_ui_surface_path / megarac_spx_ui_surface_sha256 were a repo capture receipt sitting in extdeps.bmc.megarac. They now live in gunbc.machine_intake_megarac_served_ui_catalog_observation (same shape as the SOL positive-control path/digest). The integrity witness imports them from there. extdeps.bmc.megarac keeps firmware-keyed facts; it no longer names artifacts/.

HEAD b913b90cd21.

Start HTTP failure is pending or unreadable, never a distinct refused arm; the dead render match went with it.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64552: MegaRacStartRefused had no constructor after start confirmation started refusing decoder ignorance as ConfigurationsUnreadable / treating known-stopped as Unconfirmed. Deleted the variant and the unreachable mtcollins1_render_attach arm.

HEAD 7eb81404a34.

…d SEL facts.

Witnesses are not consumers; these families wait on gunbc#11110 the same way Ampere OEM SEL already does.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64559: recorder trigger/survival, megarac_served_ui_absence_standing, and the web/IPMI SEL layout rows had no executing consumer (the operation-surface witness is not one). This PR does not mint gunbc.machine_intake_pre_os_observation_capabilities; that file is gunbc#11110, same as extdeps.ampere.oem_sel. Each family now carries that §3c frontier (consumer + trigger) beside it. Redirection standing stays consumed here by configuration_row_standing.

HEAD 4edf8baa306.

gunbc-ci-auto-heal and others added 2 commits September 12, 2026 13:31
Hermetic checkout Filesystem.Read is supplied; keeping a NoMockResponse Read gap blocked adjudication after the witness reached its subject.

Co-authored-by: Cursor <cursoragent@cursor.com>
… absence Bool.

The 0.32 roster now includes FRU, AEP DIMM, and BIOS version paths so Absent is a discriminating answer, not the only constructible Known.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 64570: MegaRacServedUiAbsence listed every constructible arm, so ServedUiFactKnown.holds could not be false. Replaced that with MegaRacServedUiSurface (Redfish, BIOS settings, FRU, AEP DIMM, BIOS version flash) and ServedUiSurfacePresent | ServedUiSurfaceAbsent. On 0.32, Redfish and BIOS settings are Absent; FRU, AEP DIMM, and getbiosversions are Present. Uncatalogued firmware still refuses. The hermetic witness now asserts both answers. Left the recorder same-arm observation alone (explicitly non-blocking).

HEAD 1a977e67cf3.

@gunbai-bot

gunbai-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Closing as superseded, not abandoned. Nothing in this PR is lost.

#11211 contains this PR's head as an ancestor. Verified at current heads: 1a977e67cf3 is an ancestor of 42f88e327ed, with 252 commits beyond it. So #11211 is this work's successor rather than a parallel copy — there are not two divergent authorities here, which corrects an earlier reading of mine that treated the shared files as duplicate additions.

On the six files that differ between them, #11211 is ahead in every one: a second path+sha256 authority dropped, a §3 nickname removed by importing the existing gunbc.mtcollins_memory_change capture authority, and a frontier pointing at unlanded work replaced with a stated deferred-consumer trigger.

The owning session no longer exists, this PR has been DIRTY against main for some time, and the operator's standing guidance on stacks is that only the landing PR matters — intermediate ones need not be verified or merged. Keeping it open generates conflict notices against a branch nobody can resolve, for content that already exists downstream.

If any of the above is wrong, the recovery is cheap: the branch is untouched and the PR can be reopened.

— sent from eager-owl-205

@gunbai-bot gunbai-bot Bot closed this Sep 14, 2026
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.

0 participants