Repository navigation
Release DAOrganizer 0.16.0: bundled routes and optional updates - #6
Conversation
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: 9a0f7863e4
ℹ️ 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".
| var after=ImmutableArray.Create( | ||
| new OrganizationItemExpectation(candidate.Source.Character,candidate.Source.Location,candidate.ItemKey, | ||
| candidate.Source.Item.Slot,beforeSource-candidate.Quantity,shape), | ||
| new OrganizationItemExpectation(candidate.Destination,"Bank",candidate.ItemKey,null,beforeDestination+candidate.Quantity,shape)); |
There was a problem hiding this comment.
Match bank confirmations using bank-observable fields
When the source is inventory, shape includes durability, max durability, and stackability, but BankMenu.Parse necessarily creates destination-bank items without those fields. Attaching that fingerprint to the bank-side ExpectedAfter means a successful deposit of an inventory item can never satisfy OrganizationPlanContract.Matches; the wait in Organizer.Transfers.cs times out and leaves the transfer in reconciliation. Keep the exact fingerprint for source/trade validation, but confirm the destination bank using only fields its scan can observe.
AGENTS.md reference: AGENTS.md:L38-L38
Useful? React with 👍 / 👎.
| try{SaveTransferTrace(run.Id,senderResult,recipientResult);} | ||
| catch(IOException){/* Journal remains the recovery authority if local diagnostics fail. */} | ||
| } | ||
| Store.MarkTransferNeedsReconciliation(run.Id,ShortReason(ex),DateTimeOffset.UtcNow); |
There was a problem hiding this comment.
Keep diagnostic writes from bypassing reconciliation
If the optional diagnostics directory is unwritable, SaveTransferTrace can throw UnauthorizedAccessException, which is not an IOException. In this failure branch that exception escapes before MarkTransferNeedsReconciliation; the identical narrow catch after verified delivery also exits before banking begins, leaving the journal at RecipientVerified with no supported recovery action. Diagnostic persistence failures must not interrupt the durable custody transition.
AGENTS.md reference: AGENTS.md:L38-L38
Useful? React with 👍 / 👎.
| var pending=Store.ListTransferRuns(200).FirstOrDefault(x=>x.State is not (TransferRunState.Complete or TransferRunState.Failed)&& | ||
| Store.LoadOrganizationPlan(x.PlanId)?.Plan.Steps.SingleOrDefault(s=>s.Id==x.StepId)?.ItemKey==key); |
There was a problem hiding this comment.
Query all unfinished journals before consolidation
Once more than 200 newer transfer journals exist, an older unfinished run is omitted from this list and the same item can be offered for consolidation again. This threshold is readily reached because consolidation creates one journal per unit; moreover, schema v5 releases the source reservation after verified recipient delivery, so the database index will not necessarily catch the missed destination-held item. Query unfinished runs directly rather than limiting the safety check to recent history.
AGENTS.md reference: AGENTS.md:L16-L16
Useful? React with 👍 / 👎.
DAOrganizer 0.16.0 packages reviewed bank consolidation with bundled routes and optional stable GitHub updates. New users can install or extract the self-contained app without obtaining WorldLogs; existing profiles and Credential Manager logins stay in their current locations.
Automatic updates default off. Check/download/install controls use Velopack, with installation blocked during actions and while any owned game client remains open, including at login. Demo bypasses updater activity. Releases remain unsigned, documented alongside recovery limits.
Also restores the original launch artwork, refreshes all fictional screenshots and setup/release docs, replaces superseded images, and excludes development material from user packages. Existing transfer fixes on this branch and the approved consolidation working changes are included.
Validation: clean Release solution build; 334 unit/protocol tests; headless UI checks and sprite-backed normal/compact gallery; deterministic release-helper self-tests; x64 package/feed/checksum validation with corruption rejection; native disposable portable update installing a test version and changed files. No live game actions were revalidated.