Skip to content

Prepare v0.1.x release candidate @codex#4

Merged
andywkff merged 6 commits into
mainfrom
codex/release-prep-v0.1.x
Apr 15, 2026
Merged

Prepare v0.1.x release candidate @codex#4
andywkff merged 6 commits into
mainfrom
codex/release-prep-v0.1.x

Conversation

@andywkff
Copy link
Copy Markdown
Contributor

Pull request created by Codex.

Summary

  • add the portfolio orchestration API and app-facing basket import/review workflow
  • complete the documentation/tutorial pass and align the DocC onboarding path
  • prepare v0.1.x release metadata, roadmap state, and release notes

Verification

  • swift build
  • swift build -c release
  • swift test
  • swift run BacktestingKitTrialDemo
  • parity runner reports the expected missing-JS-engine message in this worktree when no local checkout is present

Remaining release decision

  • this branch is a clean release candidate, but the final public tag/release should wait until we confirm whether to release from this branch as v0.1.1 or merge to main first
  • the parity baseline checklist item still needs an explicit JS engine revision or announcement text

@andywkff
Copy link
Copy Markdown
Contributor Author

@codex review

@andywkff andywkff marked this pull request as ready for review April 15, 2026 21:46
@andywkff andywkff changed the title Prepare v0.1.x release candidate Prepare v0.1.x release candidate @codex Apr 15, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

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: 087dfe369c

ℹ️ 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".

Comment thread BacktestingKit/Engine/BKPortfolioOrchestration.swift Outdated
Comment thread BacktestingKit/App/BKAppFacade.swift Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

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: c56cc554f2

ℹ️ 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".

Comment thread BacktestingKit/Engine/BKPortfolioOrchestration.swift Outdated
Comment thread BacktestingKit/App/BKAppFacade.swift
@andywkff andywkff merged commit 1cac092 into main Apr 15, 2026
2 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

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: eb7e3f23b3

ℹ️ 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".

Comment on lines +446 to +455
let totalTrades = normalizedReports.reduce(0) { partial, pair in
partial + (pair.0.summary?.metrics.tradeCount ?? 0)
}
let weightedWinRate: Double
if totalTrades > 0 {
weightedWinRate = normalizedReports.reduce(0) { partial, pair in
let trades = pair.0.summary?.metrics.tradeCount ?? 0
let wins = Double(trades) * (pair.0.summary?.metrics.winRate ?? 0)
return partial + wins
} / Double(totalTrades)
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 Weight trade metrics by resolved sleeve allocation

The portfolio summary currently computes tradeCount and the totalTrades > 0 win-rate branch from raw sleeve trade totals without using resolvedWeight, so sleeves with zero (or tiny) allocation still influence these headline metrics. For example, with explicit weights like [1, 0], return metrics reflect only the first sleeve but win rate and trade count still include the second sleeve’s trades, producing inconsistent and misleading portfolio-level results for optimization/comparison workflows.

Useful? React with 👍 / 👎.

@andywkff andywkff deleted the codex/release-prep-v0.1.x branch April 17, 2026 18:08
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