Skip to content

Feature/plans#65

Merged
magmacomputing merged 15 commits into
mainfrom
feature/plans
Jul 22, 2026
Merged

Feature/plans#65
magmacomputing merged 15 commits into
mainfrom
feature/plans

Conversation

@magmacomputing

@magmacomputing magmacomputing commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features
    • Added a native browser confirm() dialog via the browser utility API.
    • Standard Tempo terms are now available via dedicated import paths (Quarter, Season, Zodiac, Timeline).
    • Added a simplified StandardTerms export for easier setup.
  • Bug Fixes
    • Sync clock startup now returns the active clock instance.
    • Updated string padding fill character (improves padding output consistency).
  • Documentation
    • Expanded API documentation (JSDoc with examples/parameter details) across the library and added Library API docs to the site.
    • Clarified token decoding documentation; updated README examples.
  • Chores
    • Version and release metadata bumped (e.g., 3.10.1) and API docs/build outputs refreshed.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR expands library and plugin documentation, adds browser and type exports, extracts standard Tempo terms into a private plugin workspace, updates build and package exports, adjusts utility contracts, and adds Typedoc, test, version, and publishing configuration.

Changes

Library APIs and contracts

Layer / File(s) Summary
Browser, common, and server API documentation
packages/library/src/browser/*, packages/library/src/common/*, packages/library/src/server/*
Expanded JSDoc across exported APIs with parameters, returns, remarks, and examples.
Selected utility contracts
packages/library/src/browser/webstore.class.ts, packages/library/src/browser/window.library.ts, packages/library/src/common/coercion.library.ts, packages/library/src/common/number.library.ts, packages/library/src/common/string.library.ts, packages/library/src/common/type.library.ts
Added confirm, adjusted WebStore.get and asArray, removed asCurrency, updated currency tests, changed Temporals to an explicit union, and changed padString padding.
Library implementation adjustments
packages/library/src/common/enumerate.library.ts
Updated enumify prototype selection and target construction while preserving enum conversion and proxy behavior.

Standard terms and packaging

Layer / File(s) Summary
Standard term workspace and tests
packages/plugins/.std/*
Added the private standard-term package, barrel exports, project configuration, package-level imports, module augmentations, and term behavior tests.
Tempo term registration and distribution
packages/tempo/src/plugin/term/*, packages/tempo/src/tempo.index.ts, packages/tempo/bin/resolve-types.ts, packages/tempo/rollup.config.js
Converted the term index to utility/type exports, defined local TermsModule registration, copied standard-term declarations, and emitted term modules under dist/term.
Aliases and package exports
packages/tempo/package.json, packages/tempo/src/tsconfig.json, packages/tempo/vitest.config.ts, packages/plugins/vitest.shared.ts
Added standard-term aliases, Tempo term subpath exports, plugin API aliases, and updated test mappings.

Documentation, plugins, and release metadata

Layer / File(s) Summary
API documentation publishing
packages/tempo/typedoc.library.json, packages/tempo/package.json, packages/tempo/.vitepress/*, packages/tempo/doc/*
Added Typedoc library configuration, API navigation, and standard-term subpath guidance.
Plugin API alignment
packages/tempo/src/plugin-api.index.ts, packages/plugins/sync/src/index.ts, packages/plugins/batch/*, packages/plugins/snap/*, packages/plugins/finance/*, packages/plugins/astro/*
Added logging exports, changed startClock to return AtomicClock, and expanded plugin documentation.
Versions and publishing configuration
package.json, packages/*/package.json, packages/functions/package.json, packages/tempo/src/tempo.version.ts
Updated package versions, dependency ranges, publishing metadata, and Tempo version information.
Supporting documentation and cleanup
README.md, doc/*, CHANGELOG.md, packages/tempo/plan/*, plugin documentation files
Added monorepo and build documentation, updated links and logos, removed obsolete planning/debug content, and updated release notes.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is too vague and looks like a branch name rather than a description of the change. Use a concise title that names the main change, such as "Add standard term plugin and API docs".
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 89.29% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/plans

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (2)
packages/library/src/common/international.library.ts (1)

210-212: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Standardize the JSDoc formatting.

For consistency with the rest of the newly added documentation in this file, consider capitalizing the sentence and adding a period.

♻️ Proposed fix
 /** 
- * try to infer hemisphere using the timezone's daylight-savings setting 
+ * Tries to infer the hemisphere using the timezone's daylight-savings setting.
 * `@remarks` This implementation intentionally differs from the version in `tempo-fns` 
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/library/src/common/international.library.ts` around lines 210 - 212,
Standardize the JSDoc summary above the hemisphere-inference implementation by
capitalizing its opening sentence and ending it with a period, while preserving
the existing `@remarks` content.
packages/library/src/common/temporal.library.ts (1)

153-161: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Align JSDoc parameter name with the function signature.

The JSDoc uses @param tzOrZdt, but the first overload signature directly below it uses the parameter name zdt. Documentation generators like Typedoc typically emit warnings for unmatched parameter names. Consider renaming the JSDoc parameter to zdt (or renaming the overload's parameter to tzOrZdt) to ensure correct documentation output.

♻️ Proposed refactor
- * `@param` tzOrZdt - The TimeZone string, Calendar string, or ZonedDateTime object
- * `@param` cal - The optional Calendar string if `tzOrZdt` is a timezone
+ * `@param` zdt - The TimeZone string, Calendar string, or ZonedDateTime object
+ * `@param` cal - The optional Calendar string if `zdt` is a timezone
  * `@returns` A tuple of `[timeZoneId, calendarId]`
  */
 export function getTemporalIds(zdt: Temporal.ZonedDateTime, cal?: Temporal.CalendarLike): [string, string];
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/library/src/common/temporal.library.ts` around lines 153 - 161,
Align the JSDoc parameter name with the overload signature in the temporal
library: update the `@param tzOrZdt` entry to `@param zdt` for the overload
immediately below it, or consistently rename that overload parameter instead.
Ensure the documented name matches the function signature used by documentation
generation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/library/src/common/array.library.ts`:
- Around line 123-136: Expose the key-sequence overloads before the
implementation signatures: in packages/library/src/common/array.library.ts lines
123-136, add the byKey overload accepting a required keyof T followed by
optional keyof T values and returning Record<PropertyKey, T[]>; in lines
162-175, add the corresponding byLkp overload returning Record<PropertyKey, T>.
Keep both existing implementations unchanged.

In `@packages/library/src/common/string.library.ts`:
- Around line 275-284: Update the padding character in the affected
string-padding function in string.library.ts from \u007F to \u00A0, ensuring its
documented non-breaking-space behavior matches the implementation.

In `@packages/library/src/common/webtoken.library.ts`:
- Around line 12-16: Update the documentation for the decoded JWT claims in
webtoken.library.ts to explicitly state that the payload is unverified and
attacker-controlled. Clarify that it is for reading public claims only and must
not be used for authentication, authorization, or any other security decision.

---

Nitpick comments:
In `@packages/library/src/common/international.library.ts`:
- Around line 210-212: Standardize the JSDoc summary above the
hemisphere-inference implementation by capitalizing its opening sentence and
ending it with a period, while preserving the existing `@remarks` content.

In `@packages/library/src/common/temporal.library.ts`:
- Around line 153-161: Align the JSDoc parameter name with the overload
signature in the temporal library: update the `@param tzOrZdt` entry to `@param
zdt` for the overload immediately below it, or consistently rename that overload
parameter instead. Ensure the documented name matches the function signature
used by documentation generation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ee297883-9f97-4758-b44a-2e4a9afc05c8

📥 Commits

Reviewing files that changed from the base of the PR and between 0d24667 and c8eed93.

📒 Files selected for processing (40)
  • packages/library/src/browser/mapper.library.ts
  • packages/library/src/browser/tapper.class.ts
  • packages/library/src/browser/webstore.class.ts
  • packages/library/src/browser/window.library.ts
  • packages/library/src/common/array.library.ts
  • packages/library/src/common/assertion.library.ts
  • packages/library/src/common/boundary.library.ts
  • packages/library/src/common/buffer.library.ts
  • packages/library/src/common/cipher.library.ts
  • packages/library/src/common/class.library.ts
  • packages/library/src/common/coercion.library.ts
  • packages/library/src/common/enumerate.library.ts
  • packages/library/src/common/function.library.ts
  • packages/library/src/common/international.library.ts
  • packages/library/src/common/logger.class.ts
  • packages/library/src/common/number.library.ts
  • packages/library/src/common/object.library.ts
  • packages/library/src/common/pledge.class.ts
  • packages/library/src/common/primitive.library.ts
  • packages/library/src/common/proxy.library.ts
  • packages/library/src/common/reflection.library.ts
  • packages/library/src/common/request.library.ts
  • packages/library/src/common/scopedset.class.ts
  • packages/library/src/common/serialize.library.ts
  • packages/library/src/common/storage.library.ts
  • packages/library/src/common/string.library.ts
  • packages/library/src/common/symbol.library.ts
  • packages/library/src/common/temporal.library.ts
  • packages/library/src/common/type.library.ts
  • packages/library/src/common/utility.library.ts
  • packages/library/src/common/webtoken.library.ts
  • packages/library/src/server/auth.library.ts
  • packages/library/src/server/file.library.ts
  • packages/library/test/common/number_library.test.ts
  • packages/plugins/finance/package.json
  • packages/tempo/.vitepress/config.ts
  • packages/tempo/.vitepress/theme/data/catalog.json
  • packages/tempo/doc/6-utility-library/tempo.library.md
  • packages/tempo/package.json
  • packages/tempo/typedoc.library.json

Comment thread packages/library/src/common/array.library.ts
Comment thread packages/library/src/common/string.library.ts Outdated
Comment thread packages/library/src/common/webtoken.library.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/plugins/sync/src/index.ts`:
- Around line 10-11: Align startClock in the sync plugin with its documented
usage by returning the clock/buffer object that consumers assign to clock and
read via clock.buffer, and update its declared return type from void
accordingly. Ensure the implementation returns that object at runtime while
preserving existing clock-start behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: db67241d-41ee-4a23-aa08-37dcc34d52e7

📥 Commits

Reviewing files that changed from the base of the PR and between c8eed93 and f62e44c.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (41)
  • package.json
  • packages/functions/README.md
  • packages/functions/package.json
  • packages/library/package.json
  • packages/plugins/.std/README.md
  • packages/plugins/.std/package.json
  • packages/plugins/.std/src/index.ts
  • packages/plugins/.std/src/term.quarter.ts
  • packages/plugins/.std/src/term.season.ts
  • packages/plugins/.std/src/term.timeline.ts
  • packages/plugins/.std/src/term.zodiac.ts
  • packages/plugins/.std/test/term.test.ts
  • packages/plugins/.std/test/term_unified.test.ts
  • packages/plugins/.std/test/tsconfig.json
  • packages/plugins/.std/tsconfig.json
  • packages/plugins/astro/src/index.ts
  • packages/plugins/batch/src/BatchOrchestrator.ts
  • packages/plugins/batch/src/index.ts
  • packages/plugins/finance/src/index.ts
  • packages/plugins/snap/src/index.ts
  • packages/plugins/sync/src/AtomicClock.ts
  • packages/plugins/sync/src/AtomicReader.ts
  • packages/plugins/sync/src/index.ts
  • packages/plugins/vitest.shared.ts
  • packages/tempo/bin/resolve-types.ts
  • packages/tempo/doc/3-extending-tempo/tempo.modularity.md
  • packages/tempo/doc/3-extending-tempo/tempo.term.md
  • packages/tempo/package.json
  • packages/tempo/plan/refactor-path-terms.md
  • packages/tempo/rollup.config.js
  • packages/tempo/src/engine/engine.alias.ts
  • packages/tempo/src/plugin-api.index.ts
  • packages/tempo/src/plugin/term/term.index.ts
  • packages/tempo/src/std.d.ts
  • packages/tempo/src/tempo.index.ts
  • packages/tempo/src/tempo.version.ts
  • packages/tempo/src/tsconfig.json
  • packages/tempo/test/core/alias-engine.test.ts
  • packages/tempo/test/core/discovery.getters.test.ts
  • packages/tempo/test/plugins/debug_term.test.ts
  • packages/tempo/vitest.config.ts
💤 Files with no reviewable changes (4)
  • packages/plugins/sync/src/AtomicReader.ts
  • packages/tempo/test/plugins/debug_term.test.ts
  • packages/tempo/plan/refactor-path-terms.md
  • packages/plugins/sync/src/AtomicClock.ts

Comment thread packages/plugins/sync/src/index.ts Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
packages/tempo/src/plugin/term/std.d.ts (1)

1-1: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Expose StandardTerms as readonly TermPlugin[].
any[] drops element type safety, and the exported array is still mutable at the type level. Use the actual term plugin type here to make the public API safer and clearer.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/tempo/src/plugin/term/std.d.ts` at line 1, Update the StandardTerms
declaration to use a readonly array of TermPlugin values instead of any[].
Import or reference the existing TermPlugin type, preserving the exported symbol
while enforcing element type safety and preventing type-level mutation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/tempo/src/plugin/term/std.d.ts`:
- Line 1: Update the StandardTerms declaration to use a readonly array of
TermPlugin values instead of any[]. Import or reference the existing TermPlugin
type, preserving the exported symbol while enforcing element type safety and
preventing type-level mutation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4da303c0-b827-4e4b-ad71-7e2840ef5784

📥 Commits

Reviewing files that changed from the base of the PR and between c7f8c35 and 9c7cd8a.

📒 Files selected for processing (3)
  • packages/plugins/vitest.shared.ts
  • packages/tempo/src/plugin/term/std.d.ts
  • packages/tempo/src/tsconfig.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/tempo/src/tsconfig.json
  • packages/plugins/vitest.shared.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
packages/plugins/finance/README.md (1)

1-1: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use a stable local or version-pinned logo asset.

Referencing main makes published documentation non-reproducible and can cause the image to drift or disappear independently of the release being documented. Prefer a repository-local asset for generated docs, or pin the remote URL to a release/tag/commit.

  • packages/plugins/finance/README.md#L1-L1: replace the mutable main URL with a stable asset reference.
  • packages/plugins/finance/doc/index.md#L1-L1: replace the mutable main URL with a stable asset reference.
  • packages/plugins/snap/doc/index.md#L1-L1: replace the mutable main URL with a stable asset reference.
  • packages/plugins/sync/doc/index.md#L1-L1: replace the mutable main URL with a stable asset reference.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/plugins/finance/README.md` at line 1, Replace the mutable logo URL
with a stable repository-local asset or version-pinned reference in
packages/plugins/finance/README.md lines 1-1,
packages/plugins/finance/doc/index.md lines 1-1,
packages/plugins/snap/doc/index.md lines 1-1, and
packages/plugins/sync/doc/index.md lines 1-1.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/functions/package.json`:
- Around line 60-68: Move `@js-temporal/polyfill` from devDependencies into
peerDependencies, and add or preserve its peerDependenciesMeta entry with
optional set to true. Keep the existing dependency version and remove the
duplicate devDependency entry.

In `@packages/tempo/src/module/module.benchmark.ts`:
- Line 41: Update the getTime function’s performance availability check to test
whether global.performance is actually defined, rather than comparing it to the
string "undefined". Call global.performance.now() only when the object exists;
otherwise fall back to Date.now().

---

Nitpick comments:
In `@packages/plugins/finance/README.md`:
- Line 1: Replace the mutable logo URL with a stable repository-local asset or
version-pinned reference in packages/plugins/finance/README.md lines 1-1,
packages/plugins/finance/doc/index.md lines 1-1,
packages/plugins/snap/doc/index.md lines 1-1, and
packages/plugins/sync/doc/index.md lines 1-1.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 46dec1ae-1bad-4fbc-b34f-cb4db77ec227

📥 Commits

Reviewing files that changed from the base of the PR and between 9c7cd8a and 90289d4.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (26)
  • README.md
  • doc/build-pipeline-internals.md
  • doc/contributing-and-testing.md
  • doc/monorepo-architecture.md
  • packages/functions/CHANGELOG.md
  • packages/functions/README.md
  • packages/functions/package.json
  • packages/library/README.md
  • packages/library/src/common/enumerate.library.ts
  • packages/library/src/common/type.library.ts
  • packages/plugins/astro/doc/index.md
  • packages/plugins/batch/doc/index.md
  • packages/plugins/finance/README.md
  • packages/plugins/finance/doc/index.md
  • packages/plugins/snap/doc/index.md
  • packages/plugins/sync/doc/index.md
  • packages/plugins/vitest.shared.ts
  • packages/tempo/doc/2-core-concepts/tempo.format.md
  • packages/tempo/src/core.index.ts
  • packages/tempo/src/module/module.benchmark.ts
  • packages/tempo/src/module/module.format.ts
  • packages/tempo/src/module/module.index.ts
  • packages/tempo/src/plugin/term/std.d.ts
  • packages/tempo/src/plugin/term/term.index.ts
  • packages/tempo/src/support/support.index.ts
  • packages/tempo/src/tempo.index.ts
💤 Files with no reviewable changes (1)
  • packages/tempo/doc/2-core-concepts/tempo.format.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • packages/functions/README.md
  • packages/tempo/src/plugin/term/term.index.ts
  • packages/tempo/src/tempo.index.ts
  • packages/plugins/vitest.shared.ts

Comment thread packages/functions/package.json Outdated
Comment thread packages/tempo/src/module/module.benchmark.ts Outdated
@magmacomputing
magmacomputing merged commit 0593b24 into main Jul 22, 2026
5 checks passed
@magmacomputing
magmacomputing deleted the feature/plans branch July 22, 2026 04:35
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.

1 participant