Conversation
Store the last known-good fetched core info edition in node.updater and scope it to the active update key so stale hints are ignored after key changes. Seed core updater subscription from max(currentBuild, lastKnownGoodFetchedEdition) and reset hints when the configured update key changes. Also keep key-only URI compatibility tests and add focused tests for seed selection, key mismatch reset, and fetch recording behavior.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 52430f914c
ℹ️ 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".
Add a null/empty guard in NodeUpdateManager.extractPublicKeyMaterial() before indexOf calls to avoid potential NullPointerException on malformed URI string rendering. Also replace duplicated revocation option literals with REVOCATION_URI_OPTION and rename a shadowing local test variable in NodeUpdateManagerTest.
Keep full configured revocation URIs when they use a custom docname/path, while still serializing bare key material for the canonical /revoked form. Add regression tests to ensure callback/config round-trips do not rewrite custom revocation URI locations.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 24ff0d7bd1
ℹ️ 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".
Drop disabled main-jar UOM message handling and dead manager code paths, including unused legacy constants/callbacks in NodeUpdateManager. Remove unused inbound dependency handler state and simplify UOM dependency peer selection to announcement-derived peers. Update updater tests for new behavior and eliminate stale/unused test warnings.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51bd6fd723
ℹ️ 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".
src/main/java/network/crypta/node/updater/NodeUpdateManager.java
Outdated
Show resolved
Hide resolved
Keep full update URI values when a non-default docname/path is configured so restart does not silently switch channels. Continue serializing canonical info/jar updater URIs as bare key material, and add regression tests for callback and constructor persistence behavior.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ea6e9d25e
ℹ️ 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".
src/main/java/network/crypta/node/updater/NodeUpdateManager.java
Outdated
Show resolved
Hide resolved
Scope persisted fetched-edition hints by normalized update URI instead of key-only values, canonicalizing SSK-for-USK fetch URIs before comparison. Reset ambiguous legacy bare-key hints when migrating to custom update doc scopes, preserve safe legacy-info migration, and keep startup subscription aligned to configured update URI. Add focused updater tests for custom-scope migration, SSK success-path normalization, and same-key different-doc behavior; extract test setup helper and simplify scope-alignment control flow.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e43488bc3b
ℹ️ 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".
src/main/java/network/crypta/node/updater/NodeUpdateManager.java
Outdated
Show resolved
Hide resolved
When a matching fetched-edition hint exists, subscribe one edition below the highest known fetched value to ensure USKManager emits immediate onFoundEdition callbacks after restart. Keep current-build seeding for non-matching or near-current hints, and extend updater tests for higher-than-current and one-above-current seed behavior.
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|


Summary
lastKnownGoodFetchedEditionhint innode.updatermax(currentBuild, lastKnownGoodFetchedEdition)when the persisted key matches the active update keyHow To Test
./gradlew test --tests network.crypta.node.updater.NodeUpdateManagerTest./gradlew test --tests network.crypta.node.updater.UpdateOverMandatoryManagerTest./gradlew test --tests network.crypta.node.updater.NodeUpdaterTest./gradlew test --tests network.crypta.node.NodeControlMessageHandlerTestNotes
release/2per request.