Skip to content

Add Internals section to the docs - #179

Merged
Korijn merged 1 commit into
masterfrom
claude/docs-internals-section-uq4f6k
Jul 8, 2026
Merged

Add Internals section to the docs#179
Korijn merged 1 commit into
masterfrom
claude/docs-internals-section-uq4f6k

Conversation

@Korijn

@Korijn Korijn commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Documents the architecture under the hood: generated proxy classes and
trap categories, per-method change detection strategies, dependency
tracking through Dep.stack, the proxy registry and its reference-counted
lifetimes, watcher internals (lazy vs eager, deep traversal, callback
arity discovery) and the scheduler's queueing and flush behavior.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01K9XsZ9T5YbSKpqQA3RKNEM

Documents the architecture under the hood: generated proxy classes and
trap categories, per-method change detection strategies, dependency
tracking through Dep.stack, the proxy registry and its reference-counted
lifetimes, watcher internals (lazy vs eager, deep traversal, callback
arity discovery) and the scheduler's queueing and flush behavior.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K9XsZ9T5YbSKpqQA3RKNEM
@Korijn
Korijn merged commit 72f5cdc into master Jul 8, 2026
9 of 10 checks passed
@Korijn
Korijn deleted the claude/docs-internals-section-uq4f6k branch July 8, 2026 16:26
berendkleinhaneveld added a commit that referenced this pull request Jul 10, 2026
First stable release. Since v0.19.0, observ has had a broad performance
overhaul, gained full type-hint coverage and a new trigger_ref API, and
picked up a documentation site.

New features
- trigger_ref(): force-notify the watchers of a proxy, mirroring Vue's
  triggerRef (#188, closes #123).
- Fully typed: modern type hints throughout, a py.typed marker, and ty
  type-checking enforced in CI (#185, #184, closes #114).

Performance
- Reworked deep-watch traversal: plain leaf values are filtered out of the
  traverse stack at push time and raw targets are traversed directly.
  Traversing large flat/shallow structures is up to ~85% faster (#190).
- Lower per-operation trap overhead and proxies constructed with positional
  flags: reactive reads/writes and proxy creation are ~35-50% faster
  (#192, #193).
- proxy_db lifetimes are managed by reference counting instead of a gc hook,
  eliminating reference cycles and making cleanup deterministic (#177).
- Scheduler and dependency-bookkeeping micro-optimizations: in-place bisect
  insertion (#191), single-read/write flush counting (#196), a set
  difference in cleanup_deps (#194), and reading the arg count off the code
  object in weak() (#195).

Correctness
- Guarantees, with tests, that observ creates no reference cycles (#189).

Documentation
- New MkDocs site published to GitHub Pages (#176), with an Internals
  section (#179) and a rewritten README (#180).

Tooling
- Modernized CI workflows (#182) and a more robust benchmark guard
  (#181, #187).
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