mirror of
https://github.com/logos-co/logos-workspace.git
synced 2026-08-27 10:41:16 +00:00
* fix: pin logos-libp2p-module's libp2p input to a SHA (deleted upstream branch) The nightly bump's "Update flake.lock" step failed: error: unable to download 'https://api.github.com/repos/vacp2p/nim-libp2p/commits/feat/cbind/xpr-decode': HTTP error 422 logos-libp2p-module pins its `libp2p` input to the upstream branch `vacp2p/nim-libp2p/feat/cbind/xpr-decode`, which was deleted. Re-locking that input (nix flake lock --update-input logos-libp2p-module) re-resolves the branch ref and 422s, so the candidate is never staged. Override `libp2p` at the workspace level to the exact SHA the branch last pointed at (7c73484c — what the lock already resolved to; never merged to master, reachable only by SHA). Behavior-preserving. Because the nightly runs `ws sync-graph` BEFORE the lock update — which regenerates the auto-inputs block of flake.nix — a hand-edited override would be wiped every run. So the override is emitted by sync-graph itself via a new `get_manual_url_overrides` helper (mirrors `get_manual_follows`), and also applied to the committed flake.nix/flake.lock so master is self-consistent now. Stopgap until logos-libp2p-module SHA-pins libp2p in its own flake.nix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(ws): filter and sort transitive URL overrides in sync-graph Address review feedback on get_manual_url_overrides emission: - Filter each override iname against the downstream flake's declared_set (same guard the follows path uses) so a renamed/removed upstream input can't leave a stale override that adds a spurious lock node; warn on skip. - Sort the kept overrides for deterministic, idempotent flake.nix output when a repo ever declares more than one override. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(ws): pin protocol + qt-sdk to the rejection re-exchange fix (validation) Validation branch (not for merge). Re-pins two workspace inputs to the rejection-driven token re-exchange work: - logos-protocol -> 30857a7 (fix/rejection-driven-reexchange, logos-protocol#26): provider returns the structured unauthorized sentinel on a stale token; the consumer drops it, re-runs requestModule and retries once. - logos-qt-sdk -> ceb47d0 (integration/reexchange-full): enforcement-test sentinel update (logos-qt-sdk#14) + async replica-caching test fix (#136). `follows` propagates the logos-protocol override to every consumer, so only these two inputs need re-pinning; all other repos stay at the base branch's pins. Run the Tests-and-Doctests workflow on this ref for the end-to-end validation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * ci(doctests): build doc-tests against the workspace snapshot The doc-test legs already get --release-for for every submodule, but that only pins WHICH COMMIT of a repo a spec builds. Nix resolves a repo flake from ITS committed flake.lock, so the workspace's `follows` never reach a doc-test: a suite happily builds a dependency at a commit this workspace does not pin. 410 of 742 (consumer, workspace-dep) pairs across the 54 submodule locks currently disagree with the workspace pin. That is not academic. The logos-wallet-module UI doc-test was red on both platforms in every nightly for a week against a snapshot that already pinned the fix (logos-standalone-app 155f21b) -- the doc-test cloned logos-wallet-ui, whose own lock still pinned c8c0bece, and the UI never reached Ready. The snapshot was right; only the resolution path was wrong. Emit the snapshot as a {repo: {owner, rev}} pin map and hand it to logos-doctest's new --workspace-pins. The harness then rewrites each `nix build/run` of a workspace repo with --override-input flags pinning its inputs to the snapshot, and checks out `git clone`d workspace repos at the pinned commit instead of their default branch (a plain git URL is not a flake ref, so nothing pinned it before -- logos-wallet-ui's master has already moved two commits past the pin, and logos-storage-module clones logos-storage-ui at a hardcoded feature branch). This costs cache hits and makes the legs considerably slower. That is the right trade for the one job whose entire purpose is validating a snapshot; every repo's own CI is untouched. Verified locally on aarch64-darwin: the wallet-ui doc-test, red in every nightly, passes 3/3 with the pin map and no change to any repo's lock -- the clone is pinned to c3e0d0d and the token-race override is injected. Requires logos-co/logos-doctest#7. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>