feat(strategy29): add dynamic summaries with localized draggable panel - #277
Conversation
|
@codex review |
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. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ 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". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5b282ec9c4
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d8a945e5b0
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0441cfb7e9
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1865790e0c
ℹ️ 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".
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ 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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ 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". |
The Strategy29 summary now consumes observer V2 selection status while preserving the frozen V1 local detector. It displays selection generation, refresh state, configured intervals, ready/selected counts and successful-refresh age, and distinguishes unavailable selection, selected units awaiting observation and a market excluded from the current selection. Membership updates retain recent event history. Current health rows require both selected-symbol and configured-timeframe membership, so removed periods cannot remain in the current unit list.
Incompatible specs expose only the validated three-field identity envelope and never interpret an old payload; matching V2 still requires exact fields and coherent refresh state/reason combinations. Refresh metadata is required or null according to the reported state, preserving valid expired and clock-back cases. Regression tests cover all 18 state/reason combinations and the metadata matrix, no event request on mismatch, retained history and restored matching display.
The panel separately labels aggregate live readiness and last stored processing status. A stored ready row remains valid while current producer generation or admission is pending; it is shown as neutral Processed rather than green ready.
The summary follows Binance's existing pathname locale contract: Chinese routes show Chinese copy, and English routes show English. Locale changes rerender retained connection/status/events and update existing menu IDs without rebuilding the client or resetting requests/cursors. Technical identifiers and arbitrary diagnostic details remain verbatim with localized labels. Header dragging excludes buttons, saves coordinates in private userscript storage and restores position across symbol contexts/reloads; viewport/content/collapse changes clamp the panel, and disposal removes drag listeners.
The strict status validator and generated 0.3.0 artifact match the paired server PR #330. Publish the server contract before this client. Remote summary remains opt-in; publication does not activate the monitor, gateway or notifications. One-time gateway configuration across strategy modules and a discoverable disabled-state entry are documented follow-ups, not implemented here.
Validation: 840 unit/DOM tests, 64 UI fixtures, all migrated Binance syntax checks and generated metadata checks passed. 150 focused Strategy29 tests passed. Two new regressions reproduced English-only copy and missing position restoration before the fix. Actual bilingual rendering, header dragging/storage, collapse and narrow viewport containment passed without page errors. Frozen Python/JavaScript parity covered 5368 prefixes, 27938 signals and 3000 indicator rows. Real temporary-SQLite gateway responses passed the exact generated contract, including selection generation/readiness, recent snapshot [2,3], increment [4] and HTTP 400/401/409/503. Artifact SHA256: e596ee8fb971cda4307205349182eb05b44b461c9193c2b8693ef4fc71009e2a.
Live remote acceptance remains pending activation. The previous 0.2.2 client remains loaded on the current page; its user-enabled summary reports configuration_required. This 0.3.0 artifact has not yet been installed. Server PR #330 is merged and its automatic deployment/smoke completed successfully.