Visitar URL original
fix: BYTE sum/avg and COUNT ANTI-JOIN CHAIN wrong answers (#9281, #9278, #9277) by lvca · Pull Request #9288 · ArcadeData/arcadedb · GitHub
Skip to content

fix: BYTE sum/avg and COUNT ANTI-JOIN CHAIN wrong answers (#9281, #9278, #9277) - #9288

Merged
lvca merged 3 commits into
mainfrom
fix/9281-9278-9277-9165
Oct 6, 2026
Merged

lvca merged 3 commits into
mainfrom
fix/9281-9278-9277-9165

Conversation

@lvca

@lvca lvca commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Fixes #9281
Fixes #9278
Fixes #9277

  • Type.increment/decrement widen Byte to Short, so sum()/avg() over BYTE work.
  • The anti-join push-down declines negated patterns with edge property map, inline WHERE, edge variable, or end node labels/properties.
  • AntiJoinChainOp no longer reuses a neighbour map across hops whose target labels differ.

Tests: TypeTest, Issue9281SumByteTest, Issue9277And9278AntiJoinChainTest; opencypher, sql function and schema suites green.

Summary by CodeRabbit

  • Bug Fixes
    • Corrected openCypher anti-join results for patterns with differing vertex labels and additional edge or endpoint constraints.
    • Fixed byte-value arithmetic so SQL and openCypher aggregates return correct results, including for mixed numeric types.

@lvca lvca added this to the 26.11.1 milestone Oct 6, 2026
@lvca lvca self-assigned this Oct 6, 2026
@mergify

mergify Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

This pull request does not currently match the merge queue conditions, so it cannot be queued from here. The box comes back if it matches again.

@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown

Review

Overall this is a small, focused fix and the changes look correct. Notes below.

Type.increment/decrement (#9281)

  • Widening Byte to Short before recursing is simple and correct. The result is never a Byte, which matches how the other integral cases behave.
  • Minor: Short.valueOf(a.shortValue()) allocates for values outside the cached range on a hot aggregation path. The Byte-first check is cheap, so this is probably fine. A dedicated Byte case in the switch would avoid the extra recursion if you care about the sum() hot loop.
  • Tests cover Byte+Byte, Byte+Long, Integer+Byte, Double+Byte and decrement. Nothing covers Byte with Float or BigDecimal, so it would be worth adding those.

Anti-join push-down (#9278)

  • Declining the push-down when the relationship has properties, a WHERE, or a variable, or when the end nodes have labels or properties, is the safe fix.
  • It also means a negated pattern with a plain label on the end nodes, such as NOT (a:Person)-[:K]->(b:Person), falls back to the row pipeline. That is a performance regression for a plausible common shape. If the label is already implied by the MATCH, you could keep the push-down when the label equals the one bound for that variable. Otherwise, please confirm this trade-off is intended.
  • Prefer one pattern per line. final NodePattern first = ..., last = ...; is fine, but the new code already calls pp.getFirstNode() just below, so those calls can reuse first and last.

AntiJoinChainOp (#9277)

  • Adding the target-label equality to both reuse conditions is right. Please double-check that nodeLabels has length hops+1, so nodeLabels[h + 1] is always in bounds. It looks that way from the surrounding code.
  • The anti-join reuse check compares nodeLabels[antiJoinTargetIdx] to nodeLabels[1]. That assumes hopMaps[0] was built with the label at index 1. The test covers it, but a short comment would help.

Tests

  • Good: the "as written" versus "after WITH" cross-check is a strong oracle.
  • assertSame shadows the AssertJ naming and reads like an assertion on object identity. Something like assertSameCount would be clearer.
  • The test DB path is hard-coded. Existing tests extend TestHelper, which handles creation and cleanup and avoids collisions with parallel builds. Consider using it.
  • In Issue9281SumByteTest, isEqualTo(150) on an Object depends on the exact return type (Integer). That is fine, but it is brittle if the type later changes to Long.

No security concerns. Per CLAUDE.md, no new dependencies were added and there are no stray System.out calls.

@codacy-production

codacy-production Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 12 complexity

Metric Results
Complexity 12

View in Codacy

🟢 Coverage 95.65% diff coverage · -5.75% coverage variation

Metric Results
Coverage variation ✅ -5.75% coverage variation
Diff coverage ✅ 95.65% diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (cbf701d) 214016 182272 85.17%
Head commit (7d69d5f) 246639 (+32623) 195869 (+13597) 79.42% (-5.75%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#9288) 23 22 95.65%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: aad30e33-82c9-4f28-8439-6eae3edf564b
📥 Commits

Reviewing files that changed from the base of the PR and between cbf701d and 7d69d5f.

📒 Files selected for processing (6)
  • engine/src/main/java/com/arcadedb/query/opencypher/executor/CypherExecutionPlan.java
  • engine/src/main/java/com/arcadedb/query/opencypher/executor/steps/AntiJoinChainOp.java
  • engine/src/main/java/com/arcadedb/schema/Type.java
  • engine/src/test/java/com/arcadedb/query/opencypher/Issue9277And9278AntiJoinChainTest.java
  • engine/src/test/java/com/arcadedb/query/sql/executor/Issue9281SumByteTest.java
  • engine/src/test/java/com/arcadedb/schema/TypeTest.java

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

The changes constrain openCypher anti-join count push-down for label and pattern constraints. They also add Byte handling to increment and decrement. Regression tests cover anti-join query counts and BYTE arithmetic and aggregates.

Changes

Anti-join chain correctness

Layer / File(s) Summary
Anti-join eligibility and label constraints
engine/src/main/java/com/arcadedb/query/opencypher/executor/CypherExecutionPlan.java
Anti-join extraction rejects relationships with properties, inline WHERE expressions, or variables, and rejects unsupported endpoint properties or labels. It records supported endpoint labels and declines push-down when those labels do not match the chain.
Target-aware map reuse and regression coverage
engine/src/main/java/com/arcadedb/query/opencypher/executor/steps/AntiJoinChainOp.java, engine/src/test/java/com/arcadedb/query/opencypher/Issue9277And9278AntiJoinChainTest.java
Neighbor-map reuse now checks target labels. Regression tests compare counts for direct WHERE clauses and WITH pipelines across differing labels and negated-pattern constraints.

Byte arithmetic

Layer / File(s) Summary
Byte arithmetic and aggregate coverage
engine/src/main/java/com/arcadedb/schema/Type.java, engine/src/test/java/com/arcadedb/schema/TypeTest.java, engine/src/test/java/com/arcadedb/query/sql/executor/Issue9281SumByteTest.java
Type.increment and Type.decrement widen Byte operands to Short before applying existing arithmetic rules. Tests cover mixed numeric operands and BYTE aggregate results in SQL and openCypher.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: robfrank

Merge Risk: ⚪ Minimal · up to 7d69d

The PR fixes BYTE sum and average, and it fixes wrong anti-join chain counts by declining unsafe push-downs and avoiding map reuse across labels. Regression tests cover these changes, and no outstanding defects were found. It appears ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 17.65% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 17 functions across 6 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the BYTE aggregate fix and the COUNT ANTI-JOIN CHAIN fixes, and it identifies the related issues.
Description check ✅ Passed The description explains the changes, lists the related issues, and names the tests and suites. It omits the template’s explicit Motivation, Additional Notes, and Checklist sections, but it provides e…
Linked Issues check ✅ Passed #9281: Type.increment widens Byte operands to Short; the regression test checks sum() and avg() for SQL and openCypher. #9278: push-down declines negated patterns with relationship propertie…
Out of Scope Changes check ✅ Passed The changes in Type.java, CypherExecutionPlan.java, and AntiJoinChainOp.java directly address #9281, #9278, and #9277. The tests exercise those fixes and check related aggregate behavior. The `B…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown

Review of #9288

The fixes look correct and well-scoped. The new tests compare the push-down result against the row pipeline, which is a good oracle.

Suggestions

  1. CypherExecutionPlan: info.sourceLabel = first.getLabels().get(0) only looks at the first label. This is safe only if hasPushDownRepresentableLabel rejects multi-label nodes (e.g. (x:A:B)). Please confirm that it does, and add a test such as NOT (x:P:Foo)-[:K]->(z).
  2. AntiJoinInfo.sourceLabel and targetLabel are non-final mutable fields set after construction. Passing them through the constructor would let you mark them final, which matches the CLAUDE.md preference.
  3. Type.increment and Type.decrement: the Byte pre-check adds an instanceof test and a recursive call on every invocation. The cost is negligible for the Byte path, but this sits on aggregation hot paths. A case Byte branch inside the switch would avoid the extra test for the common types, though this is minor.
  4. Byte overflow semantics: byte 100 + byte 50 now returns a Short or Integer (150), which is the desired fix. Please document that sum over BYTE does not wrap. The test asserts isEqualTo(150), so the exact result type is worth pinning down.
  5. Tests: Issue9277And9278AntiJoinChainTest uses a hard-coded ./target/databases path. Extending TestHelper would be more consistent, as Issue9281SumByteTest does. Also consider a test for the antiJoinMap = hopMaps[0] reuse path with matching labels, to guard against the optimization regressing into never reusing the map.
  6. Style: the all-caps comments (// THE PUSH-DOWN ONLY LOOKS AT...) differ from the surrounding comment style.

No security concerns. Overall this is a good fix, and the points above are minor.

@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown

Review

Overall this is a focused fix with good regression tests. No blocking issues found.

Type.increment/decrement (#9281)

  • Widening Byte to Short up front is simple and correct. The result is a Short or wider, so 100 + 50 can't overflow.
  • One side effect: sum() over BYTE now returns a Short when both operands are bytes. That seems fine, but it's a visible type change. The test asserts isEqualTo(150) on an Object, which works with the SQL path's numeric result. Worth confirming nobody relies on a Byte result.
  • Minor perf point: the extra instanceof checks run on every call, including the hot Integer/Long paths. They're cheap, but you could move them to the default branch of the switch to keep the common path untouched.

Anti-join push-down (#9278)

  • Declining on edge props, inline WHERE, edge variable, and end-node props/labels is the right conservative fix. It falls back to the row pipeline, which is correct.
  • The label check in the chain-matching code (sourceLabel vs nodeLabels[idx]) correctly handles a label that is implied by the chain. Only the first label is compared, and hasPushDownRepresentableLabel presumably rejects multi-label nodes. NOT (x:P:Foo) is covered by a test, which is good.

AntiJoinChainOp (#9277)

  • Both reuse conditions now include the target label (nodeLabels[h+1]), which fixes the stale-map bug. The antiJoinMap = hopMaps[0] check uses nodeLabels[antiJoinTargetIdx] vs nodeLabels[1]. That matches the stated reasoning.
  • Please double check the non-anchorIsSource branch (and any similar reuse in the OLAP or other execute* paths) for the same pattern. Only executeOLTP was changed here.

Style/CLAUDE.md

  • The ALL-CAPS comments (THE PUSH-DOWN ONLY LOOKS AT..., THE MAP KEEPS ONLY...) don't match the surrounding comment style, so use normal case.
  • The AntiJoinInfo constructor assigns the new fields before the others. That's harmless but a bit odd.
  • Tests use assertThat correctly. The two test classes use different bases (a manual DatabaseFactory vs TestHelper). Using TestHelper in the anti-join test would remove the setup/teardown boilerplate.

Tests

  • Comparing the as-written query against the WITH ... WHERE row pipeline is a nice oracle. The coverage of edge props, labels, and node props is good.
  • A test with a differing-label chain that hits the antiJoinMap = hopMaps[0] reuse specifically (anchor as source, checkPos > 0) would pin down that second fix. crossLabelChainReusesNoMap may cover it, but it isn't obvious.

LGTM with the minor nits above.

@codecov

codecov Bot commented Oct 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 73.91304% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.93%. Comparing base (cbf701d) to head (7d69d5f).

Files with missing lines Patch % Lines
...query/opencypher/executor/CypherExecutionPlan.java 75.00% 1 Missing and 3 partials ⚠️
...ery/opencypher/executor/steps/AntiJoinChainOp.java 66.66% 0 Missing and 1 partial ⚠️
engine/src/main/java/com/arcadedb/schema/Type.java 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##               main    #9288   +/-   ##
=========================================
  Coverage     76.93%   76.93%           
+ Complexity     3982     3980    -2     
=========================================
  Files          2128     2128           
  Lines        214016   214035   +19     
  Branches      45541    45552   +11     
=========================================
+ Hits         164656   164673   +17     
+ Misses        31781    31776    -5     
- Partials      17579    17586    +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tae898

tae898 commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Verified the head 7d69d5f against main cbf701d (both CI jars), on Temurin 25.0.4 with compact object headers and Temurin 21.0.12.

The three fixes do what they say. The cross-label chain (#9277) and the negated pattern's modifiers (#9278) answer like the row pipeline: 0 wrong of 2,700 random chain queries compared with a brute-force count, against 60 wrong before the PR. SUM and AVG over a BYTE property (#9281) give 150 and 75.0 on the unchanged repro, 26 of 26 BYTE-versus-SHORT comparisons agree (11 of 26 before), and Type.increment and Type.decrement are right in 33 of 33 pairs with a Byte (0 of 33 before). LSQB's Q9 text keeps the COUNT ANTI-JOIN CHAIN plan with an unchanged time (ratio of medians 0.99 to 1.04, 10 JVMs per arm, 100 timed runs each, both JDKs).

Two things for the review. The queries the PR declines now take the row pipeline, which is right but slower on the declined spellings (Q9 with an edge property map is 28 to 36x slower, with an end node property map 26 to 27x, with an end label that differs from the chain's 22 to 23x). And a few queries that were right by accident are now wrong: 4 of 3,000 random chains (true count 0, and I think the label bug emptied the frontier and hid a different bug, which is inferred and not tested) and 22 of 2,808 spelled ones (20 negate the chain's own last relationship with a true count of 0, and 2 are the no-inequality shape below).

The push-down is still wrong for other shapes, with the same answers on 26.10.1, on main, and on this head, so they are not about this PR and I would not block on them: #9290 has a deterministic Java repro and the table.

@lvca
lvca merged commit 5d1259e into main Oct 6, 2026
@lvca
lvca deleted the fix/9281-9278-9277-9165 branch October 6, 2026 12:12
tae898 added a commit to humemai/arcadedb-embedded-python that referenced this pull request Oct 6, 2026
…rcadeData#9278 shapes with a property map)

The ArcadeData#9288 verification on the merge commit (5d1259e) showed the engine now plans a negated pattern with a property map through the
row pipeline, so _require_anti_join_plan would pytest.fail on those two tests. The count is what they assert; the no-map case keeps
its plan check.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
tae898 added a commit to humemai/arcadedb-embedded-python that referenced this pull request Oct 6, 2026
…ires become plain regression tests (the 26.11.1 snapshot carries the fix) (#232)

* tests: the ArcadeData#9277, ArcadeData#9278 and ArcadeData#9281 tripwires become plain regression tests (#231)

Upstream fixed all three in ArcadeDB 26.11.1 (ArcadeData#9288, merge commit 5d1259e, 2026-10-06).
The CI snapshot image carries the fix, so the strict xfails XPASS and fail every job. The ArcadeData#9290 tripwires stay.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

* tests: no plan check where the fixed engine declines the push-down (ArcadeData#9278 shapes with a property map)

The ArcadeData#9288 verification on the merge commit (5d1259e) showed the engine now plans a negated pattern with a property map through the
row pipeline, so _require_anti_join_plan would pytest.fail on those two tests. The count is what they assert; the no-map case keeps
its plan check.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
tae898 added a commit to humemai/arcadedb-embedded-python that referenced this pull request Oct 6, 2026
…ted from the shipped 26.10.1 wheel (#228)

The 46 per-test-file pages under development/testing/ restated the tests' own names and docstrings and had drifted (a wrong auto-transaction default, a skip that does not exist, a marker table missing a test, 12 of 62 test files absent from the overview). They are replaced by one development/testing.md with a table of every test file, the markers, the zero-skips gate as it is now, what the docs tests run, and the section on writing a test.

Also removed: examples/basic.md, examples/import.md, examples/vectors.md (pointers that examples/index.md and the guide already cover) and getting-started/distributions.md (merged into installation.md; its two needles leave tests/test_docs_examples.py with it).

Known issues and the vectors guide now say what is true for the shipped wheel: upstream ArcadeData#9277, ArcadeData#9278, ArcadeData#9281, and ArcadeData#7260 are fixed upstream for 26.11.1 (PRs ArcadeData#9288 and ArcadeData#9289) and still present in 26.10.1; ArcadeData#9290 is still open. The JPype entries no longer say the wheel installs 1.7.1 (it declares jpype1>=1.5.0).

API, guide, and development pages: removed pre-26.10.1 workaround history for bugs the wheel ships fixed, sections that duplicated the guide, and wrong statements found against the source (schema of_type, set_wal_flush, troubleshooting entries, type-mapping table, wheel and server-stack sizes measured on the 26.10.1 wheel). Hunks that open PR #164 also touches are left alone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
tae898 added a commit to humemai/arcadedb-embedded-python that referenced this pull request Oct 6, 2026
…ted from the shipped 26.10.1 wheel (#228)

The 46 per-test-file pages under development/testing/ restated the tests' own names and docstrings and had drifted (a wrong auto-transaction default, a skip that does not exist, a marker table missing a test, 12 of 62 test files absent from the overview). They are replaced by one development/testing.md with a table of every test file, the markers, the zero-skips gate as it is now, what the docs tests run, and the section on writing a test.

Also removed: examples/basic.md, examples/import.md, examples/vectors.md (pointers that examples/index.md and the guide already cover) and getting-started/distributions.md (merged into installation.md; its two needles leave tests/test_docs_examples.py with it).

Known issues and the vectors guide now say what is true for the shipped wheel: upstream ArcadeData#9277, ArcadeData#9278, ArcadeData#9281, and ArcadeData#7260 are fixed upstream for 26.11.1 (PRs ArcadeData#9288 and ArcadeData#9289) and still present in 26.10.1; ArcadeData#9290 is still open. The JPype entries no longer say the wheel installs 1.7.1 (it declares jpype1>=1.5.0).

API, guide, and development pages: removed pre-26.10.1 workaround history for bugs the wheel ships fixed, sections that duplicated the guide, and wrong statements found against the source (schema of_type, set_wal_flush, troubleshooting entries, type-mapping table, wheel and server-stack sizes measured on the 26.10.1 wheel). Hunks that open PR #164 also touches are left alone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
tae898 added a commit to humemai/arcadedb-embedded-python that referenced this pull request Oct 6, 2026
…ted from the shipped 26.10.1 wheel (#229)

* docs: retire stale and duplicate Python bindings pages, fix what drifted from the shipped 26.10.1 wheel (#228)

The 46 per-test-file pages under development/testing/ restated the tests' own names and docstrings and had drifted (a wrong auto-transaction default, a skip that does not exist, a marker table missing a test, 12 of 62 test files absent from the overview). They are replaced by one development/testing.md with a table of every test file, the markers, the zero-skips gate as it is now, what the docs tests run, and the section on writing a test.

Also removed: examples/basic.md, examples/import.md, examples/vectors.md (pointers that examples/index.md and the guide already cover) and getting-started/distributions.md (merged into installation.md; its two needles leave tests/test_docs_examples.py with it).

Known issues and the vectors guide now say what is true for the shipped wheel: upstream ArcadeData#9277, ArcadeData#9278, ArcadeData#9281, and ArcadeData#7260 are fixed upstream for 26.11.1 (PRs ArcadeData#9288 and ArcadeData#9289) and still present in 26.10.1; ArcadeData#9290 is still open. The JPype entries no longer say the wheel installs 1.7.1 (it declares jpype1>=1.5.0).

API, guide, and development pages: removed pre-26.10.1 workaround history for bugs the wheel ships fixed, sections that duplicated the guide, and wrong statements found against the source (schema of_type, set_wal_flush, troubleshooting entries, type-mapping table, wheel and server-stack sizes measured on the 26.10.1 wheel). Hunks that open PR #164 also touches are left alone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

* docs: testing.md says a strict xfail fires when the fix reaches the engine the suite runs on, which CI builds from upstream's snapshot jars (#228)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

* docs: known issues says ArcadeData#9290 is fixed upstream (ArcadeData#9299, 26.11.1) and the tripwires are plain regression tests that fail on the 26.10.1 wheel (#228)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment