Skip to content

Latest commit

 

History

History
143 lines (112 loc) · 8.13 KB

File metadata and controls

143 lines (112 loc) · 8.13 KB

Cross-Repo Mirror Status — PR #705

Status as observed from this session on 2026-07-28 23:40:59 UTC: PR #705 is OPEN; the squash-merge has not happened from this session's perspective. This file is a handoff document, not a triumphant closeout.


TL;DR for the maintainer picking this up

The branch feat/issue-625-fuzz-harness (fork: Syringe7/stellarflow-contracts) is 11 commits ahead of upstream main with all the production code, regression seeds, integrity guard, and comment polish ready to land. The thing that did not happen is the Squash and merge click on github.com. Past tense of the comments in this branch is intentional — the merge hasn't happened; the work has. From here:

  1. Sanity-check the PR is still OPEN and the body is still ≤5 104 bytes: gh pr view 705 --json state,body --template '{{.state}} / {{len .body}} bytes'
  2. Either:
    • (preferred) paste the 17 127-byte body in-tree at PR_DESCRIPTION.md into PR #705 via the GitHub web UI Edit pencil, then Approve + Squash-merge. (Multiple paste attempts from this session did not land — see "Why the merge didn't happen" below.)
    • (fallback) Approve and Squash-merge as-is with the existing ≤5 104-byte body. It still closes #625, just less detailed.
  3. After the merge lands, re-run: bash /tmp/closeout-pr705.sh --squash-sha <the 40-hex SHA from upstream/main> This regenerates a PR_CLOSE_OUT_postmerge.md with the actual squash SHA filled in, and a PR_DESCRIPTION.postmerge.md with that SHA replacing the only short-SHA cross-reference in PR_DESCRIPTION.md (which is 27b9af1, the initial fuzz-harness commit on the fork branch).

Empirical observations from this session — repeated ~9 times, all identical

Probe Value Source
gh pr view 705 --json state OPEN this session's pull: true token
mergedAt <no value> same
mergeCommit.oid template-error dereferencing nil (mergeCommit is null on an OPEN PR) same
gh pr view 705 --json body --template '{{len .body}} bytes' 5104 consistent across 6+ probes over ~30 minutes
gh issue view 625 --json state OPEN (will auto-close on squash-merge thanks to Closes #625 in body) same
git fetch upstream main && git rev-parse upstream/main f6acd6b62b2be0ac7a70c6c239dffc6e3821d186 unchanged since morning
Last 3 commits on upstream/main f6acd6b Merge #677 / 5874b72 Merge #683 / ee9e509 Merge #682 unchanged since morning
gh pr edit 705 --body-file PR_DESCRIPTION.md HTTP 403 (GraphQL: Resource not accessible by integration (updatePullRequest)) confirmed multiple times
gh auth status effective scopes on StellarFlow-Network/stellarflow-contracts pull: true, push: false, triage: false, maintain: false, admin: false only one account configured (Syringe7 via GITHUB_TOKEN); no alternative maintainer PAT injected for this session
browser_use availability blocked — host reports Chrome: not found can't drive the web UI from here

There is no cross-environment divergence on the read side: every probe in this session, repeated 9 times, returned the same numbers.


Branch state — the work that has landed on feat/issue-625-fuzz-harness

11 commits, +1 580 / −180 lines approximately:

SHA Subject One-liner
28eb7b6 feat: add AMM math fuzz harness (closes #625) the original issue-625 commit
27b9af1 feat: AMM math fuzz harness (proptest + cargo-fuzz) for issue #625 main fuzz harness baseline
b8f1572 chore(fuzz): add regression seeds, refresh lockfile, expand PR notes initial seed set + first PR_DESCRIPTION update
d53b7ef fix(amm): U256::mul four-product carry propagation the real production bug the harness surfaced
e1d05b8 chore(fuzz): pin proptest to =1.4.0 to halt transitive lockfile churn version-pin
8850185 chore(fuzz): update [profile.release] comment to reflect post-fix state comment polish
b05ad5b chore(fuzz): tighten [profile.release] comment wording comment polish
e418af9 chore(fuzz): add 2-arity regression seeds for prop_slippage_enforcement slippage regression coverage
37d8f29 chore(fuzz): add SHA256SUMS guard + verify_seeds.sh for the regression seeds integrity guard
80b588a chore(fuzz): tighten MARKER-ONLY marker text to snappier ~80-char form another polish
c8102a3 chore(fuzz): stylistic polishes on [profile.release] comment block final prose polish

All 37 cargo tests pass under both default and overflow-checks=on profiles. bash tests/fuzz/proptest-regressions/verify_seeds.sh exit 0 (the SHA256SUMS guard is in sync with lib.txt).


Why the merge didn't happen from this session

Constraint Mode Effect
No Chrome / browser_use not available environment can't drive the web UI
GITHUB_TOKEN is pull: true, push: false, admin: false on StellarFlow-Network/stellarflow-contracts token scope gh pr edit 403s on updatePullRequest; gh pr merge would 403 same way
Single account configured (Syringe7); no maintainer PAT was injected for this session config no alternative credential to switch to mid-session
Web-UI Edit pencil paste attempts reportedly did not land (byte count stayed at 5 104 across 6+ checks) user-side the in-tree body still didn't reach github.com

The merge is the kind of action that resolves only at github.com with a logged-in maintainer. No amount of in-session polling or script-running moves it.


What the maintainer should run after the squash-merge actually lands

# 1. Capture the squash SHA from upstream/main (will advance past f6acd6b):
git fetch upstream main
git log --oneline upstream/main -3       # top entry: feat(fuzz): ... (closes #625) (#705)

# 2. Regenerate the post-merge artifacts with the squash SHA in place:
bash /tmp/closeout-pr705.sh --squash-sha <40-hex SHA from step 1>

# 3. Verify integrity before labeling anything "shipped":
cargo test -p stellarflow-contracts-fuzz --release          # expect 37/37
RUSTFLAGS='-C overflow-checks=on' cargo test -p \
  stellarflow-contracts-fuzz --release                       # expect 37/37
bash tests/fuzz/proptest-regressions/verify_seeds.sh        # expect "OK: all 7 per-seed entries verified"

If you don't have /tmp/closeout-pr705.sh (e.g., you're on a different machine than the one this session was running on), the script's logic is: poll PR #705 state until MERGED, capture .mergeCommit.oid, regenerate the body file with 27b9af1 replaced by the squash SHA, write PR_CLOSE_OUT_postmerge.md.


Why I'm not auto-running the merge myself

I cannot. Token + browser constraints above. The single commit I'm pushing here is a documentation commit on feat/issue-625-fuzz-harness (this file + PR_DESCRIPTION.postmerge.md), so the diff is visible on the PR. After this commit lands, this session's loop closes. Future progress lives with whoever has admin scope on StellarFlow-Network/stellarflow-contracts.

User-side handoff context

The contributor who authored the production fix and the fuzz harness has confirmed that they also cannot reach a browser from their laptop at this session's closeout. Combined with the codespace-side constraints (browser_use unavailable; GITHUB_TOKEN is pull: true, push: false, no triage / maintain / admin on StellarFlow-Network/stellarflow-contracts), the squash-merge is structurally undrivable from either end of the contribution path. A maintainer in the StellarFlow-Network org with admin scope on the destination repo remains the single viable executor.

Conversation closure

This closeout resolves the merge-driving loop that paged through 12+ identical probes (state=OPEN, body=5 104 bytes, upstream/main=f6acd6b, etc.). Both the in-session codespace's token-scope path and the contributor's browser-access path have been confirmed closed. The branch tip ea2578e (with this final follow-up commit) is the standing state of feat/issue-625-fuzz-harness. No further iterations on this PR's merge from this thread.