Kerberos v3: Add ReBAC, OTel, migrate to Oxlint/Oxfmt, enhance contributor guide, and split runtimes - #3
Merged
Conversation
Introduces project-level Ox formatter and linter configuration files, including style preferences (single quotes, semicolons, trailing commas, 120-char width) and broad lint rule coverage for Node, React, Promise, TypeScript, Unicorn, and Vitest contexts. `.editorconfig` is also aligned with these standards by setting max line length, tab width, and LF line endings.
Introduces a new `CLAUDE.md` with repository-specific guidance for AI-assisted contributors. It documents project context, required pnpm commands, coding style, core architecture (policy evaluation, validation, caching, logging, and testing DSL), and export/type maintenance expectations to help keep future changes consistent with existing patterns.
Replace ESLint (neostandard) and Prettier with Oxlint and Oxfmt for faster, unified linting and formatting. - Remove ESLint, neostandard, Prettier and related dependencies - Add oxlint and oxfmt as dev dependencies - Update .oxlintrc.json: simplify config for Node.js project (remove React/TypeScript overrides) - Delete .prettierrc, .prettierignore, and eslint.config.js - Update npm scripts: lint → oxlint, add format/format:check tasks - Reformat all source and test files to match oxfmt standards (line wrapping, spacing)
Introduces a platform runtime split with `src/runtime/node.js` and `src/runtime/browser.js`, and routes browser builds through a new root `browser.js` entry via `package.json` `browser` mappings and `exports.browser`. `Kerberos` now delegates call ID/time functions to the runtime module instead of doing try/catch feature detection inline. This removes Node builtin leakage from browser bundles, improves bundler compatibility, and keeps Node behavior unchanged. It also adds runtime-focused tests (interface parity, native and fallback browser paths, browser entry parity), documents the new behavior in README/CLAUDE/changelog, and declares `engines.node >= 18`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several major features, improvements, and tooling changes to the project, most notably adding relationship-based access control (ReBAC) inspired by SpiceDB/Zanzibar, enhancing error handling and observability, and migrating the codebase to new linting and formatting tools. It also adds a comprehensive CI workflow and documents all changes in the changelog.
Key changes:
Features and Enhancements
onError), cache retry, and configurable codec limits.Breaking Changes and Security
Tooling and CI
.editorconfigfor consistent formatting and line endings.Documentation
CHANGELOG.mdwith detailed release notes for all new features, changes, and migration steps.