Skip to content

📝 Fix docs pages that are empty or don't match the package - #220

Merged
mbret merged 4 commits into
mainfrom
claude/awesome-bell-2a040j
Nov 3, 2026
Merged

mbret merged 4 commits into
mainfrom
claude/awesome-bell-2a040j

Conversation

@mbret

@mbret mbret commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Why

Code copied from the docs fails on import. The Utils section documents five functions the package doesn't export, and the Signal page persists signals with two names that don't exist.

Six exported utils have a page that says only "todo".

  • Change: remove the pages for unexported functions, write the empty ones and fix the wrong examples.
  • Gain: each page documents something the package exports, with an example that compiles.

What's new

  • 🔥 No pages for isPlainObject, difference, filterObjectByKey, trackSubscriptions, emitToSubject
  • 📝 Pages for arrayEqual, isDefined, isShallowEqual, useConstant, useLiveRef, retryBackoff
  • 🩹 Signal page persists with usePersistSignals and createLocalStorageAdapter

Other changes

  • 🐛 arrayEqual compares every index, so a hole in a sparse array no longer counts as equal
  • 🩹 isServer shown as a boolean and isPromiseLike as a type guard
  • 🩹 useMount page no longer points to a useLifecycles hook

Details

  • arrayEqual used every, which skips holes: arrayEqual(new Array(1), [1]) was true and the reversed call false. Its fix commit releases a patch version on merge.
  • The shallowEqual page moves to isshallowequal.md, under its exported name. Old links to it and to the five removed pages now 404.
  • filterObjectByKey stays in src/: a useObserve selector test uses it.

🔍 Self-reviewed with selfcorrect-review
🤖 Made within harness coverage

🤖 Generated with Claude Code

https://claude.ai/code/session_01BvSDyJABLGit75HAjpnsqm

- The Signal page persisted signals with `persistSignals` and
  `localStorageAdapter`, which aren't exported. It now uses
  `usePersistSignals` with `createLocalStorageAdapter`.
- `isServer` is a boolean, not a function.
- `isPromiseLike`'s signature is a type guard.
- `useMount` pointed to a `useLifecycles` hook that doesn't exist.

Claude-Session: https://claude.ai/code/session_01BvSDyJABLGit75HAjpnsqm
…ntents

`arrayEqual`, `isDefined`, `isShallowEqual`, `useConstant`, `useLiveRef`
and `retryBackoff` are exported, and their pages said only "todo".

The table of contents drops the pages the previous commit removed:
`isPlainObject`, `difference`, `filterObjectByKey`, `trackSubscriptions`
and `emitToSubject`. None is exported, so their examples failed on
import. It also lists `shallowEqual` under its exported name,
`isShallowEqual`.

Claude-Session: https://claude.ai/code/session_01BvSDyJABLGit75HAjpnsqm
@mbret mbret self-assigned this Nov 3, 2026
@mbret
mbret marked this pull request as ready for review November 3, 2026 12:38
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T12:40:58.091018Z 7106907 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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

Copy link
Copy Markdown

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: 71069078d8

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

`every` skips the holes of a sparse array, so
`arrayEqual(new Array(1), [1])` returned true while the reversed call
returned false. A loop compares every index.

Claude-Session: https://claude.ai/code/session_01BvSDyJABLGit75HAjpnsqm
It compares `constructor` and `Object.keys`, so the page no longer
promises the same prototype or every own key.

Claude-Session: https://claude.ai/code/session_01BvSDyJABLGit75HAjpnsqm
@mbret
mbret merged commit eea087e into main Nov 3, 2026
4 checks passed
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