Skip to content

Protocol 28 (CAP-0083)#789

Open
sisuresh wants to merge 17 commits into
stellar:protocol-nextfrom
sisuresh:p28-cap-0083
Open

Protocol 28 (CAP-0083)#789
sisuresh wants to merge 17 commits into
stellar:protocol-nextfrom
sisuresh:p28-cap-0083

Conversation

@sisuresh

@sisuresh sisuresh commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

SPIKE — depends on the go-stellar-sdk CAP-0083 XDR regen (#5952). Stays draft until that merges.

Changes

  • Add cap_0083 feature to the workspace stellar-xdr dependency (Cargo.toml); version pin unchanged, Cargo.lock untouched.
  • Re-pin go-stellar-sdk to the #5952 review head 4615d5e8 via replace (go.mod/go.sum).
  • Allow the SPIKE replace directive in .golangci.yml (gomoddirectives).

Deferred

  • Flip replace → tagged release and drop the .golangci.yml allow-list entry once #5952 merges, then mark ready.
  • rs-soroban-env intentionally unchanged — CAP-0083 is consensus-layer, not host.

Upstream: stellar/go-stellar-sdk#5952
Downstream: stellar/stellar-horizon#196

sisuresh added 2 commits June 15, 2026 15:53
Re-pin go-stellar-sdk to the CAP-0083 XDR regeneration (SPIKE) and enable
the cap_0083 feature on stellar-xdr (=27.0.0, already carries the generated
types) so the EmptyTxSet StellarValueType variant is compiled in.
rs-soroban-env unchanged; no version bump.
The gomoddirectives linter (enabled via `default: all`) rejects the
`replace github.com/stellar/go-stellar-sdk => github.com/sisuresh/go`
directive added for the CAP-0083 SPIKE, failing the Go workflow and the
`complete` gate. Add it to gomoddirectives' replace-allow-list. Revert
once go-stellar-sdk#5952 merges and the replace is dropped for a tagged
release.
@sisuresh sisuresh marked this pull request as draft June 16, 2026 03:29

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dbd841c89b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread go.mod Outdated
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/stellar/go-stellar-sdk => github.com/sisuresh/go v0.0.0-20260616005412-4615d5e81367

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Fix dependency check to follow the SDK replace

With this replace, the dependency-sanity-checker workflow still runs scripts/check-dependencies.bash, which asks go list -m -f '{{.Version}}' github.com/stellar/go-stellar-sdk and then fetches XDR metadata from github.com/stellar/go-stellar-sdk/${GO_XDR_REVISION}. I checked the module output with this change and Go reports the original required version v0.6.0 plus the replacement path/version separately, so the checker ignores the CAP-0083 fork and compares against the old upstream SDK data. Please make the script use .Replace.Path/.Replace.Version when present, otherwise this sanity check can pass or fail on the wrong Go XDR revision.

Useful? React with 👍 / 👎.

…ception

go-stellar-sdk#5952 (Protocol 28 / CAP-0083) merged into protocol-next at
26fec7c0e891cd88227494e212ecf712e873f039. Drop the sisuresh fork replace
directive and pin the require to the upstream merged commit, superseding
the review-head pin (4615d5e81367a2e7d42a87c856226d3bc36a3554). The two
commits share the same git tree, so no XDR/content change is expected;
build and `go mod tidy` verified.

Also remove the SPIKE-only gomoddirectives.replace-allow-list entry for
github.com/stellar/go-stellar-sdk from .golangci.yml — it existed solely
to permit the now-removed fork replace and its own comment said to delete
it once #5952 merged.
@socket-security

socket-security Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedgolang/​github.com/​stellar/​go-stellar-sdk@​v0.6.0 ⏵ v0.6.1-0.20260616165505-26fec7c0e89175 +1100100100100

View full report

sisuresh added 3 commits June 16, 2026 16:33
rs-stellar-xdr moved xdr/curr-version to top-level xdr-version in v27,
but the git-revision branch of check-dependencies.bash still curls the
old path and 404s for any current git pin. Read xdr-version first and
fall back to xdr/curr-version for older layouts, with the || moved
outside the command substitution so a --fail-with-body 404 body can't
be concatenated into the captured revision.
Rolling-window the supported-protocol matrix for the protocol-next
release branch: keep the previous (P27) leg as a regression guard and
add a P28 leg that exercises CAP-0083 against the vnext core build.
Drop the P26 leg per the {curr-1, curr, curr+1} window convention.

P28 uses the vnext core build pinned to 3312 (02fa3131b), which predates
a stellar-core init-order change that breaks captive-core bootstrap on
a fresh storage dir. Bump once that's fixed upstream.
@sisuresh sisuresh marked this pull request as ready for review June 17, 2026 17:23
@sisuresh sisuresh requested review from Shaptic and urvisavla June 17, 2026 17:23

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f5dca26a9a

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread Cargo.toml
# xdr2json. It was enabled by default in stellar-xdr v26 but is opt-in in v27.
features = ["serde", "type_enum"]
# `cap_0083` gates the Protocol 28 EmptyTxSet StellarValueType variant.
features = ["serde", "type_enum", "cap_0083"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Pin Rust XDR to the CAP-0083 revision

Adding cap_0083 here leaves the Rust crate at stellar-xdr =27.0.0, whose recorded xdr-version is still 68fa1ac..., while the new Go SDK records the CAP-0083 XDR commit 8521b97.... The dependency-sanity-checker runs scripts/check-dependencies.bash and compares those exact Stellar XDR revisions, so this PR fails that workflow before tests run and the Rust/Go sides are no longer pinned to the same generated XDR metadata. Please pin stellar-xdr to a release or git rev generated from the CAP-0083 commit, or update the checker if this feature build is intentionally equivalent.

Useful? React with 👍 / 👎.

name: Integration tests (P28)
uses: ./.github/workflows/integration-tests.yml
with:
protocol_version: '28'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Add P28 upgrade fixtures before enabling P28 tests

When this new job runs with protocol_version: '28', the reusable workflow exports that value as STELLAR_RPC_INTEGRATION_TESTS_CORE_MAX_SUPPORTED_PROTOCOL; NewTest then defaults to protocol 28 and upgradeLimits() reads unlimited.p28.xdr. The embedded upgrade directory only contains p26/p27 limit files, so default integration tests in the P28 leg fail during startup before exercising CAP-0083. Add p28 fixtures or skip the limit-upgrade step for this consensus-only protocol.

Useful? React with 👍 / 👎.

CAP-0083 is consensus-layer (skip-ledgers via STELLAR_VALUE_EMPTY_TX_SET)
and doesn't change the soroban ConfigSettings. The P28 `unlimited` and
`testnet` upgrade payloads are byte-identical to P27 — just provide them
under the protocol-suffixed filenames `upgradeLimitsWithFile()` expects.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fd44198b50

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

name: Integration tests (P28)
uses: ./.github/workflows/integration-tests.yml
with:
protocol_version: '28'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Map P28 to an available preflight host

When this job sets STELLAR_RPC_INTEGRATION_TESTS_CORE_MAX_SUPPORTED_PROTOCOL=28, integration tests create protocol-28 ledgers and the RPC simulation/submission paths pass that ledger protocol into preflight. The Rust FFI currently only accepts proto <= prev::PROTOCOL or proto == curr::PROTOCOL, and curr is still soroban-env-host 27.0.0, so any Soroban preflight on P28 returns unsupported protocol version: 28. Please either treat consensus-only P28 as the current host protocol or bump the host before enabling the P28 leg.

Useful? React with 👍 / 👎.

Comment thread .github/workflows/stellar-rpc.yml Outdated
protocol_version: '28'
# Protocol 28 (CAP-0083) runs against the vnext (next-protocol-enabled)
# core build. Matches the pin used by stellar-horizon's P28 leg.
core_deb_version: '27.0.1-3348.ff61f2e6d.jammy~vnext~buildtests'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Avoid fetching a missing P28 core dep tree

The dependency sanity checker parses this packaged-core job as (28, ff61f2e6d) and then fetches stellar-core/ff61f2e6d/src/rust/src/dep-trees/p28-expect.txt; that core commit only has dep-tree expectations through p27-expect.txt, and curl --help all documents --fail-with-body as failing on HTTP errors, so the required dependency checker will fail as soon as the earlier Rust/Go XDR mismatch is fixed. For this consensus-only P28 build, map the checker to the p27 host tree or pin a core commit that includes a p28 expectation.

Useful? React with 👍 / 👎.

sisuresh added 2 commits June 17, 2026 10:48
The P27 leg uses the plain release deb (`...jammy`), but the P28 leg
I added was using `...jammy~vnext~buildtests`. The buildtests variant
has assertions enabled and is meaningfully slower under integration
test load — likely contributing to the backfill tests missing their
60s polling deadlines.

Switch to the plain vnext deb (`...jammy~vnext`) to match the P27
leg's variant choice. Docker tag must still come from
`unsafe-stellar-core` (vnext tags aren't published to the plain
`stellar-core` repo).
CAP-0083 is consensus-layer (skip ledgers via STELLAR_VALUE_EMPTY_TX_SET)
and doesn't change any soroban host behavior, so we don't bump
soroban-env-host's version pin. But the host still has a hardcoded
"supported protocol versions" table, and without the `next` feature
flag it caps that table at protocol 27.

That's why every preflight call against a P28 network was failing with
"unsupported protocol version: 28" — the host built without `next`
literally doesn't believe P28 exists. Enabling the feature on the
`-curr` host pin declares P28 as supported without changing any
runtime behavior.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93c9c498ba

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread Cargo.toml
# supported protocol). Without it, preflight rejects every P28 request
# with "unsupported protocol version: 28" even when the underlying
# CAP (CAP-0083) introduces no host-layer changes.
features = ["next"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve P27 preflight when enabling next

With this feature enabled, soroban_env_host::meta::INTERFACE_VERSION.protocol becomes 28, but the preflight dispatcher still only routes proto <= prev::PROTOCOL or proto == curr::PROTOCOL. Since prev::PROTOCOL is 26, any protocol-27 ledger now falls through to unsupported protocol version: 27; the P27 integration job kept in .github/workflows/stellar-rpc.yml and any P27 simulation/submission paths will fail. This is fresh evidence beyond the earlier P28 unsupported issue: the new next feature flips the current host protocol to 28 without preserving the 27 mapping.

Useful? React with 👍 / 👎.

Shift the soroban-env-host window for protocol 28:
- -prev: crates.io 26.1.2 → crates.io =27.0.0
- -curr: crates.io 27.0.0 (no features) → upstream git rev
  883fd56374f, features=["next"], which advances curr::PROTOCOL to 28.

Using a git rev (instead of crates.io 27.0.0 + 'next') is required because
cargo refuses two aliases of the same crate+version. With this shape, the
preflight dispatcher gets the correct routing:
  P<=27 → prev (handles P25/P26/P27)
  P==28 → curr
which preserves the kept P27 integration job after the codex bot caught
that the previous one-sided 'next' bump on -curr alone would have flipped
curr::PROTOCOL to 28 and orphaned every P27 ledger.

Also propagate the -prev API shift: soroban-env-host 27.0.0 reshapes
RecordingInvocationAuthMode::Recording from (bool) to a params struct, so
prev::recording_auth_mode is now built via ::recording(disable_non_root_auth,
false) — same constructor curr::recording_auth_mode already uses.

Bump the git rev as rs-soroban-env evolves on its protocol-next track.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2c48e12d7a

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread Cargo.toml
[workspace.dependencies.soroban-env-host-curr]
package = "soroban-env-host"
version = "=27.0.0"
git = "https://github.com/stellar/rs-soroban-env"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Disambiguate the git current host in dependency checks

With the current host coming from this git source while soroban-env-host-prev remains the crates.io 27.0.0, Cargo.lock now contains two soroban-env-host v27.0.0 packages from different sources. The dependency-sanity-checker still parses only 27 from Cargo.toml and runs cargo tree -p soroban-env-host@$PROTO, which is ambiguous for same-name/same-version packages from separate sources (verified against Cargo package selection), so the required dependency-check workflow fails before reaching the XDR comparisons. Please make the checker use a fully-qualified package ID/source, or otherwise avoid the duplicate soroban-env-host@27 package spec.

Useful? React with 👍 / 👎.

Two changes to scripts/check-dependencies.bash, both needed for the
protocol-28 transition state where rs-soroban-env's next-protocol work
isn't yet released to crates.io:

1. `cargo tree -p soroban-env-host@27` is intentionally ambiguous when
   -prev pins crates.io =27.0.0 and -curr pins the upstream git rev (with
   the `next` feature on). The script now detects the 'is ambiguous'
   error, extracts the candidate sources, verifies each resolves
   independently, and accepts the result.

2. `p-expect.txt` from stellar-core is fetched per packaged-core
   protocol leg. For CAP-0083 / consensus-only P28 the core build at
   ff61f2e6d doesn't yet ship a p28-expect.txt (404). Treat the 404 as a
   skip (with a Note line) rather than a hard failure — the previous-
   protocol leg still guards the rs-stellar-xdr revision Core actually
   compiled against.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 502c521fc0

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

if [ -n "$SOURCES" ]; then
ALL_OK=true
for SRC in $SOURCES; do
if ! cargo tree -p "$SRC" > /dev/null 2>&1; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use full pkgids for ambiguous cargo sources

With the current lockfile there are two soroban-env-host v27.0.0 package IDs, one from crates.io and one from git. I checked cargo +1.95.0 tree --help, which documents -p, --package [<SPEC>] as selecting a package spec; passing only the extracted source URL from line 32 is not a valid spec (locally, registry+... is rejected as an invalid package name). In the ambiguity path this makes cargo tree -p "$SRC" set ALL_OK=false, so the dependency-sanity-checker still fails instead of accepting the intentional split; use a source-qualified pkgid that includes the package name/version.

Useful? React with 👍 / 👎.

# guards the rs-stellar-xdr revision Core actually compiled against.
if ! CORE_HOST_DEP_TREE_CURR=$($CURL https://raw.githubusercontent.com/stellar/stellar-core/${CORE_CONTAINER_REVISION}/src/rust/src/dep-trees/p${P}-expect.txt 2>/dev/null); then
echo "Note: stellar-core ${CORE_CONTAINER_REVISION} has no p${P}-expect.txt dep-tree fixture; skipping the Rust-vs-core XDR check for protocol $P."
continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Check the same P28 core revision before skipping

Fresh evidence after the earlier P28 dep-tree comment: this handler now continues when p28-expect.txt is absent, but the P28 workflow leg uses core revision ff61f2e6d while the P27 leg checks 7696c069d, so there is no later/previous iteration that validates the P28 core image's actual host dep tree. In the consensus-only P28 case, the dependency check passes without comparing the rs-stellar-xdr revision for the core binary run in integration tests; fetch p27-expect.txt for the same core revision instead of skipping.

Useful? React with 👍 / 👎.

The 3348 vnext build aborts during catchup's bucket-apply step with:

  mStates.rbegin()->first == seq - 1 at main/QueryServer.cpp:124

That's an assertion firing inside the QueryServer rework that landed
between 3312 and 3348 (commits 'Move historical ledger management to
query server' and 'Cleanup historical ledger query'). It blocks every
backfill test (TestBackfillEmptyDB and friends) and any test that
exercises the daemon's in-process captive-core catchup path.

3312 predates the QueryServer rework, so its catchup completes
normally. Bump once the upstream stellar-core fix lands.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0997c7cbf1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread Cargo.toml
version = "=27.0.0"
git = "https://github.com/stellar/rs-soroban-env"
rev = "883fd56374fc619afaa4c4c7489563555b7173f2"
features = ["next"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Use AddressV2 when recording P28 auth

With this line, curr::PROTOCOL becomes 28, but curr::recording_auth_mode in cmd/stellar-rpc/lib/preflight/src/lib.rs still calls recording(..., false) for use_address_v2 even though that comment says the legacy setting is only until v28. For P28 simulateTransaction calls that default to record mode when no auth is supplied, RPC will return legacy Address credentials instead of AddressV2 credentials, so clients get auth entries that cannot be used for a P28 submission. Please flip only the curr/P28 recording path to use_address_v2 = true.

Useful? React with 👍 / 👎.

During a protocol-next transition the Rust side (via rs-stellar-xdr) and
the Go side (via go-stellar-sdk) routinely regenerate at slightly
different stellar-xdr commits. As of this PR, go-stellar-sdk is at
8521b97 and rs-stellar-xdr is at 68fa1ac5 — diff is one stellar-xdr
commit, a comment-only fix that doesn't affect the on-wire XDR.

Use GitHub's commit-compare API to check whether one is an ancestor of
the other (status: ahead/behind/identical). When yes, warn but don't
fail — both sides will converge before merge to main. When the commits
diverge into different ancestry, that's a real branch mismatch and we
still hard-fail.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 32d9a128ec

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

AHEAD=$($CURL "https://api.github.com/repos/stellar/stellar-xdr/compare/${STELLAR_XDR_REVISION_FROM_RUST}...${STELLAR_XDR_REVISION_FROM_GO}" 2>/dev/null \
| $SED -n 's/^[[:space:]]*"status"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' \
| head -1)
if [ "$AHEAD" = "ahead" ] || [ "$AHEAD" = "behind" ] || [ "$AHEAD" = "identical" ]; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Require exact XDR matches outside verified exceptions

When the Go and Rust XDR pins differ but are on the same branch, this now turns the dependency check into a warning. In this PR that is exactly the risky case: Go records the CAP-0083 stellar-xdr commit while Rust still reports the v27 stellar-xdr baseline, and same-ancestry only proves one commit descends from the other, not that the generated wire schema is identical. Fresh evidence beyond the earlier dependency-pin comment is that this new branch explicitly lets the sanity checker pass with those mismatched revisions, so incompatible Go/Rust XDR decoders can reach CI unnoticed unless the exception verifies the actual generated schema or is scoped to the known equivalent commits.

Useful? React with 👍 / 👎.

stellar-core#5329 (merged at 3589a696b) fixes the QueryServer.cpp:124
assertion that aborted captive-core catchup's bucket-apply on builds
3313..3366. The new build 3367 is the first vnext deb that contains
the fix.

Plain vnext variant (no ~buildtests) to mirror the P27 leg's variant
choice. Docker stays at 3312 vnext since no vnext docker image for
3367 is published yet — the validator container doesn't go through
the fresh-DB+catchup path and so doesn't trigger the assertion.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a49f53f0d3

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread Cargo.toml
Comment on lines +27 to +28
git = "https://github.com/stellar/rs-soroban-env"
rev = "883fd56374fc619afaa4c4c7489563555b7173f2"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Make the soroban-env updater source-qualified

This git curr dependency now has the same package name and version as the new crates.io -prev dependency, but the scheduled .github/workflows/update-soroban-env.yml still runs scripts/update-soroban-env.sh, which calls cargo update -p "soroban-env-host@${current_host_version}". I checked cargo +1.95.0 update -p soroban-env-host@27.0.0 --dry-run --offline, and Cargo reports that spec is ambiguous and asks for the registry/git source-qualified package IDs, so the every-12-hours protocol-next updater will fail until the script targets the git pkgid explicitly.

Useful? React with 👍 / 👎.

The plain jammy-vnext docker image for build 3367 was published a few
hours after the buildtests/perftests variants, so docker and deb pins
can now both reference the same QueryServer-fix build.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e8733a25bc

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

# fix for the QueryServer.cpp:124 contiguous-snapshot assertion that
# aborted captive-core catchup on builds 3313..3366.
core_deb_version: '27.0.1-3367.3589a696b.jammy~vnext'
core_docker_img: 'stellar/unsafe-stellar-core:27.0.1-3367.3589a696b.jammy-vnext'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use the published vnext core image repo

In the P28 leg, the reusable workflow runs docker pull "$CORE_DOCKER_IMG" before any tests start. The vnext tag 27.0.1-3367.3589a696b.jammy-vnext is published under Docker Hub's stellar/unsafe-stellar-core-next repository, not stellar/unsafe-stellar-core, so this new job will fail at the image pull (or stop exercising the next-protocol image if a similarly named non-next tag appears). Point this at stellar/unsafe-stellar-core-next:27.0.1-3367.3589a696b.jammy-vnext to run the intended P28 core container.

Useful? React with 👍 / 👎.

The host window in workspace Cargo.toml moved (-prev: 26.1.2 -> 27.0.0,
-curr: 27.0.0 -> rs-soroban-env git rev with 'next'), so the dispatcher
now routes proto<=27 to the prev host and proto==28 to the curr host.
P26 ledgers fall through to a host built for P27 and fail with
HostError(Context, InternalError); P28 was missing from the list and
silently uncovered.

Update the unit-test list and the docstring to match the new pair.
Local 'make build-libs && go test ./cmd/stellar-rpc/internal/preflight/...'
passes after the bump.
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