Peer-context fixed point never converges on a densely mutually-recursive peer graph (ERR_AUBE_PEER_CONTEXT_NOT_CONVERGED) #1340
Replies: 1 comment
|
Thanks for the detailed report. I confirmed this is a finite deep peer chain rather than a genuinely divergent graph. The exact This was already addressed by #1324, which merged just after the v1.41.0 tag. The limit now scales with the number of peer-bearing packages, with a 16-iteration floor and 256-iteration safety ceiling. The fix is included in the upcoming v1.42.0 release PR. The ~1190 count shown during resolution is traversal progress, not the final contextualized package count, so the gap from npm is not evidence that contexts grow indefinitely here. AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
aube add @deepseek-ai/dshnever reaches a peer-context fixed point and fails withERR_AUBE_PEER_CONTEXT_NOT_CONVERGED.npm resolves the same dependency graph without trouble, so the graph itself is satisfiable — the 16-iteration cap is what's being hit.
Reproduction
Comparison with npm
aube addnpm installThe package-count gap looks like the heart of it: npm flattens and dedupes, while aube duplicates per peer context to build the virtual store, so this graph's context count keeps growing instead of settling.
Why this graph is hard
@deepseek-ai/dshhas ~60 direct@deepseek-ai/dsh-*dependencies, and each of those declares peer dependencies on a dozen more siblings, which peer-depend back. For example@deepseek-ai/dsh-goalpeer-depends ondsh-llm,dsh-agent,dsh-brand,dsh-scope,dsh-session,dsh-invariants,dsh-typert-protocolanddsh-session-projection, several of which peer-depend ondsh-goal's other peers in turn.The sibling ranges are carets on prereleases (
^0.1.0-rc.7), which resolve as>=0.1.0-rc.7 <0.2.0. Now that rc.6, rc.7 and rc.8 are all published, those ranges span three prereleases simultaneously across all ~60 packages.This appears to be what tips it over rather than any single release: rc.6 installed successfully back when it was the newest prerelease, but re-resolving
@deepseek-ai/dsh@0.1.0-rc.6from scratch today fails identically. All of rc.6, rc.7 and rc.8 now fail the same way.Workarounds tried, none effective
Each was set in an isolated project's
.npmrcwithnode_modulesand the lockfile removed in between; all four fail with the identical error.auto-install-peers=falsededupePeers=truestrict-peer-dependencies=falsepeerDependencyRules.allowAny=trueMAX_ITERATIONSdoes not appear to be exposed as a setting, so there's no way to raise the cap for a graph that may simply need more iterations.Suggestions
Making the iteration cap configurable would at least give an escape hatch for pathological graphs.
Beyond that, it would help to know whether this graph is genuinely non-convergent or merely slow to converge — the error reports the cap but not whether the context set was still changing when it gave up, which would distinguish "needs more iterations" from a true cycle.
If it is a true cycle, naming the mutually recursive packages in the diagnostic would make it actionable for the package author instead of a dead end for the user.
Environment
All reactions