Skip to content

Docs: document the circular-reference default-behavior difference from Excel - #1770

Open
marcin-kordas-hoc wants to merge 1 commit into
developfrom
docs/hf131-closed-loop-circular-ref-difference
Open

marcin-kordas-hoc wants to merge 1 commit into
developfrom
docs/hf131-closed-loop-circular-ref-difference

Conversation

@marcin-kordas-hoc

@marcin-kordas-hoc marcin-kordas-hoc commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

What and why

Documentation only. Adds a row to docs/guide/list-of-differences.md for a genuine circular
reference under default settings (A1:=A1+1), distinct from the existing "Dependency collection"
row, which is scoped specifically to false cycles caught by static dependency analysis
(IF(FALSE(), A1, 0)) — a different mechanism, a different result shape.

  • HyperFormula always returns CYCLE unless iterative calculation is explicitly enabled
    (iterative calculation isn't yet part of a released version — #1545).
  • Excel's default (iterative calculation off) silently settles the cell to a computed value
    (0 for a simple self-reference), with no cell-level error at all and no way to detect the
    cycle from the result alone.

Measured live against Excel Online via MS Graph while closed-loop testing a different, unrelated
stack (message/origin/address on cell errors) — this difference predates that work and isn't
something it changes. Google Sheets' behavior for this specific case wasn't verified this session
and is marked "Not verified" rather than assumed from the adjacent row.

Verified

  • npm run docs:build — clean; the new row renders correctly and the #1545 link resolves

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only change to the compatibility guide; no runtime or API impact.

Overview
Adds a Circular references row to the compatibility table in list-of-differences.md, using A1:=A1+1 to document default behavior separately from the existing Dependency collection row (static/false cycles).

The new row states that HyperFormula always surfaces a CYCLE error (with a link to #1545 for unreleased iterative calculation), marks Google Sheets as not verified for this case, and notes that Excel with iterative calculation off shows no cell error and settles to a value (e.g. 0) with no cycle visible from the result alone.

Reviewed by Cursor Bugbot for commit 838df28. Bugbot is set up for automated code reviews on this repo. Configure here.

…m Excel

Adds a row to list-of-differences.md distinct from the existing 'Dependency
collection' row (which is scoped to *false* cycles caught by static
dependency analysis, e.g. IF(FALSE(), A1, 0)). This one covers a *genuine*
circular reference under default settings: HyperFormula always returns
CYCLE (iterative calculation, which would let it converge instead, is not
yet part of a released version -- #1545); Excel's default (iterative
calculation off) is to silently settle the cell to a computed value (0 for
a simple self-reference) with no cell-level error at all.

Measured live against Excel Online via MS Graph while closed-loop testing
HF-131 (message/origin/address on cell errors) -- this difference predates
that work and isn't something it changes; documenting it here rather than
folding it into that stack, since it's unrelated in scope. Google Sheets'
behavior for this specific case was not verified this session and is
marked as such rather than assumed from the adjacent row.

Verified: npm run docs:build succeeds, the new row renders correctly and
the #1545 link resolves.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
hyperformula-docs 838df28 Commit Preview URL

Branch Preview URL
Sep 11 2026, 03:00 AM

@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.32%. Comparing base (c920375) to head (838df28).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #1770   +/-   ##
========================================
  Coverage    97.32%   97.32%           
========================================
  Files          195      195           
  Lines        15739    15739           
  Branches      3390     3461   +71     
========================================
  Hits         15318    15318           
+ Misses         421      413    -8     
- Partials         0        8    +8     

see 5 files with indirect coverage changes

🚀 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.

@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown

Performance comparison of head (838df28) vs base (c920375)

                                     testName |    base |    head | change
--------------------------------------------------------------------------
                                      Sheet A |  501.63 |  489.08 | -2.50%
                                      Sheet B |   157.9 |  158.42 | +0.33%
                                      Sheet T |  140.11 |  138.14 | -1.41%
                                Column ranges |  471.41 |   468.1 | -0.70%
                                Sorted lookup | 13966.9 | 14661.3 | +4.97%
Sheet A:  change value, add/remove row/column |    14.4 |   14.54 | +0.97%
 Sheet B: change value, add/remove row/column |  121.59 |  121.96 | +0.30%
                   Column ranges - add column |  144.04 |  145.63 | +1.10%
                Column ranges - without batch |  449.31 |  463.42 | +3.14%
                        Column ranges - batch |  115.34 |  112.87 | -2.14%

@Tobiadefami Tobiadefami left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from the checks performed.

Verified that =A1+1 in A1 displays 0 in Excel Online.

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.

2 participants