Repository navigation
fix(testnet): preserve release bootstrap peer identities - #406
Conversation
Bind error accessibility exclusion to effective visibility so the hidden section message does not duplicate editor feedback and suppressed revision-conflict text is not exposed. Extend the component tests for conflict suppression, other errors during conflict, editor open and close, and empty feedback. Native standalone baseline exposes two identical error nodes; the corrected standalone and Basecamp hierarchies expose one. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection/hierarchy checks with unchanged source configuration; explicit Basecamp Stop. Native checks use candidate QML with previously verified #406 artifacts. Refs #407
Give existing source mutation errors an explicit static-text role and bind their accessible name to the current feedback. Cover editor and section feedback without changing validation, persistence, or draft state. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection and valid-source E2E; standalone source persistence after restart. Native E2E used candidate QML with the previously verified native artifacts from #406. Fixes #407
Bind error accessibility exclusion to effective visibility so the hidden section message does not duplicate editor feedback and suppressed revision-conflict text is not exposed. Extend the component tests for conflict suppression, other errors during conflict, editor open and close, and empty feedback. Native standalone baseline exposes two identical error nodes; the corrected standalone and Basecamp hierarchies expose one. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection/hierarchy checks with unchanged source configuration; explicit Basecamp Stop. Native checks use candidate QML with previously verified #406 artifacts. Refs #407
Give existing source mutation errors an explicit static-text role and bind their accessible name to the current feedback. Cover editor and section feedback without changing validation, persistence, or draft state. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection and valid-source E2E; standalone source persistence after restart. Native E2E used candidate QML with the previously verified native artifacts from #406. Fixes #407
Bind error accessibility exclusion to effective visibility so the hidden section message does not duplicate editor feedback and suppressed revision-conflict text is not exposed. Extend the component tests for conflict suppression, other errors during conflict, editor open and close, and empty feedback. Native standalone baseline exposes two identical error nodes; the corrected standalone and Basecamp hierarchies expose one. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection/hierarchy checks with unchanged source configuration; explicit Basecamp Stop. Native checks use candidate QML with previously verified #406 artifacts. Refs #407
Give existing source mutation errors an explicit static-text role and bind their accessible name to the current feedback. Cover editor and section feedback without changing validation, persistence, or draft state. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection and valid-source E2E; standalone source persistence after restart. Native E2E used candidate QML with the previously verified native artifacts from #406. Fixes #407
Bind error accessibility exclusion to effective visibility so the hidden section message does not duplicate editor feedback and suppressed revision-conflict text is not exposed. Extend the component tests for conflict suppression, other errors during conflict, editor open and close, and empty feedback. Native standalone baseline exposes two identical error nodes; the corrected standalone and Basecamp hierarchies expose one. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection/hierarchy checks with unchanged source configuration; explicit Basecamp Stop. Native checks use candidate QML with previously verified #406 artifacts. Refs #407
Give existing source mutation errors an explicit static-text role and bind their accessible name to the current feedback. Cover editor and section feedback without changing validation, persistence, or draft state. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection and valid-source E2E; standalone source persistence after restart. Native E2E used candidate QML with the previously verified native artifacts from #406. Fixes #407
Bind error accessibility exclusion to effective visibility so the hidden section message does not duplicate editor feedback and suppressed revision-conflict text is not exposed. Extend the component tests for conflict suppression, other errors during conflict, editor open and close, and empty feedback. Native standalone baseline exposes two identical error nodes; the corrected standalone and Basecamp hierarchies expose one. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci (passed, including 1,344 QML tests); focused component suite (58 passed); native standalone and Basecamp rejection/hierarchy checks with unchanged source configuration; explicit Basecamp Stop. Native checks use candidate QML with previously verified #406 artifacts. Refs #407
Restore the four network addresses and terminal peer IDs published with blockchain 0.2.4 so generated IBD configuration is not empty. Cover managed inputs, private profiles, and preservation of existing operator configuration. Refs #404. Coordinate rollout with logos-blockchain-module#56. Verification: cargo fmt --all; cargo fmt --all -- --check; python3 scripts/check-build-pipeline.py ci; git diff --check. Full gate passed: 1453 library tests, 57 FFI tests, 10 standalone tests, wallet isolation, native CTest, web checks, headless CLI, and 1342 QML tests. Exact-address regression failed before the fix and passed after it. Real release C ABI generation produced all four IBD identities. Fresh Basecamp Initialize, Start, full synchronization, service readiness, and Stop passed with the release-compatible module candidate.
083b635 to
6fc77c4
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8263181823
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| anyhow::ensure!(!ensure_testnet_topology(&mut state)?); | ||
| anyhow::ensure!(fs::read(&initialization_path)? == operator_input); | ||
| anyhow::ensure!(fs::read(&runtime_path)? == operator_runtime); |
There was a problem hiding this comment.
Migrate the obsolete generated bootstrap configuration
When upgrading an existing Testnet topology created by the previous release, bedrock.init.json already contains the old 209.38.241.182 addresses without /p2p IDs, and the generated runtime YAML may already contain the resulting empty IBD peer set. This assertion codifies that ensure_testnet_topology leaves both files unchanged, so updating LOGOS_TESTNET_BOOTSTRAP_PEERS only fixes fresh profiles while the users affected by the original bug remain stuck in Bootstrapping. Preserve genuinely operator-owned values, but detect the exact legacy generated configuration and migrate it, including arranging regeneration of the runtime configuration.
Useful? React with 👍 / 👎.
|
The first consumer run found one stale policy expectation: |
Summary
Restore the four Bedrock network addresses and terminal peer IDs published with blockchain 0.2.4. The release configuration generator derives its IBD peer set from those IDs; the previous defaults generated an empty set despite
skip_ibd: false.Regression coverage checks exact release identities, exclusion of Blend locators, managed-input wiring, empty private-profile defaults, and preservation of existing operator initialization/runtime files. No automatic configuration or database migration is introduced.
Refs #404. The consumer now pins the merged compatible runtime from 3esmit/logos-blockchain-module#57 (
879b1839050a9a3eba6b0dbca97bc11848986897), which includes the release-compatible blockchain ancestry and package profile.Verification
cargo fmt --all,cargo fmt --all -- --check,git diff --check— passed on the three-file fix and dependency-lock update.nix --option eval-cache false flake check --no-build --no-write-lock-file— passed.nix build '.#testnet-v02-helper' --no-link -L --no-write-lock-file— running against the merged runtime pin; result will be recorded before merge.python3 scripts/check-build-pipeline.py ci— passed on the final three-file candidate: 1,453 library tests (one existing ignored), 57 FFI tests, 10 standalone tests, wallet isolation, native CTest, web checks, headless CLI, and 1,342 QML tests.Fresh Basecamp GUI Initialize → Start → InitialBlockDownload → Following/Online → Stop passed. Observed LIB slot 375312, tip slot 379290, height 11878; Wallet, Blend, and Leader readiness confirmed, and
/blend/inforesponded. Standalone validation passed fresh-profile source attestation/selection, live L2 reads, and exact source retention after restart. The final module package is now hosted-verified; consumer CI is rerun for this lock update.Native validation used the exact merged module and blockchain revisions. Only test listener ports were adjusted; bootstrap peers, IBD settings, and bootstrap behavior were not overridden. Existing operator profiles were untouched. A stronger wrong-Channel feedback check exposed a separate UI issue: rejection leaves configuration unchanged, but the expected error is not visibly retained; that feedback check is not counted as passing.