Repository navigation
Release @shivaedev/access 0.3.6 and 33 more packages - #1546
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 14:53
d16b71c to
99d07ca
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 16:24
99d07ca to
2a78851
Compare
github-actions
Bot
force-pushed
the
release/next
branch
3 times, most recently
from
November 1, 2026 16:43
fd10e9e to
39135e0
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 16:44
39135e0 to
e5d0aa6
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 16:56
e5d0aa6 to
ff7efab
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 16:59
ff7efab to
963df94
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 1, 2026 17:37
963df94 to
ba5f114
Compare
github-actions
Bot
force-pushed
the
release/next
branch
2 times, most recently
from
November 1, 2026 17:40
54e7afc to
0251519
Compare
github-actions
Bot
force-pushed
the
release/next
branch
2 times, most recently
from
November 1, 2026 17:59
ef7d276 to
543a76a
Compare
github-actions
Bot
force-pushed
the
release/next
branch
7 times, most recently
from
November 1, 2026 19:26
3761b1b to
5a312c6
Compare
github-actions
Bot
force-pushed
the
release/next
branch
21 times, most recently
from
November 2, 2026 00:06
646409d to
d9cace9
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 2, 2026 00:45
d9cace9 to
226a62f
Compare
github-actions
Bot
force-pushed
the
release/next
branch
from
November 2, 2026 00:55
226a62f to
4c575e2
Compare
Coverage 89.6% (±0.0 pts) · Patch 100.0%Both added lines are covered.
|
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.
Migration checklist
@shivaedev/admin
@shivaedev/changes
batchnow publish at their outermost transaction's commit, honoring the scopedCommittedSink, instead of waiting for the batch to end. Use an enclosing transaction when writes and their changes must commit together, or coalesce in the sink when independent transactions need grouped delivery. Nontransactional batch changes still wait for the batch to end, and rolled-back transactions publish nothing.BucketRegistrationError.invalidFieldsnaming the rejected fields. Use string or number schemas, optionally nullable or optional, for bucket values. Codecs such asSchema.NumberFromStringremain supported. Replace opaque declarations with an explicit string or number schema and refinements. When constructingBucketRegistrationErrordirectly, supplyinvalidFields(an empty array for field-name mismatches).withinnow receives aTransactionBoundaryas its second argument. Unary adapters remain compatible. Wrap a native combinator that already accepts a second options argument as(body) => native(body, options)to keep those options explicit.@shivaedev/errors
@shivaedev/rate-limitnow fails with the sharedTooManyRequests. Replace imports from@shivaedev/rate-limit/TooManyRequests.tswith@shivaedev/errors/taxonomy.tsand add@shivaedev/errorsas a dependency. Use that shared schema in contract rejections and custom stores. ItskeyandretryAtfields are optional because other callers can create message-only failures; check for their presence before using them. The limiter continues to supply both fields. The old module is removed without an alias.@shivaedev/form
messageAtPath(issue, [])now selects only whole-form issues. Pass a field path such as["name"]to select that field's first message.@shivaedev/github
GitHubTokenproviders can now fail withGitHubRateLimitedalongsideGitHubAppError. Consumers handling authentication failures must also handleGitHubRateLimitedand use itsretryAtwhen scheduling another attempt.InvalidBodyLimiterror fromerrors.ts. Pass a finite nonnegative byte limit and handle the new failure in the error channel.InvalidBodyLimitfrom@shivaedev/http/errors.tsfor invalid byte limits. Supply finite nonnegative limits and handle that failure alongside existing response failures.CreateCheckRunrequires a conclusion whenstatusiscompleted, with validation before any request. Consumers creating completed runs must supplyconclusion; usequeuedorin_progresswhen no conclusion is available.CheckRunStatusincludeswaiting,requestedandpendingfrom GitHub Actions responses. Consumers with exhaustive status handling must add these cases. GitHub App create and update inputs remain restricted toqueued,in_progressandcompleted.@shivaedev/heavy-lock
<lock>.reclaimdirectory and checks ownership before removing a stale file, so competing reclaimers never displace a live holder. Stop participants and upgrade every implementation sharing a lock path to the documented gate protocol before restarting them; implementations that rename the lock during reclamation cannot safely participate.Crypto.Cryptoalongside the filesystem, path and process-spawning services. ProvideNodeServices.layer, or addNodeCrypto.layerto a custom platform layer.@shivaedev/heavy-lock/adapters/signals.tsinstead of@shivaedev/heavy-lock/cli/signals.ts.@shivaedev/http
InvalidBodyLimiterror fromerrors.ts. Pass a finite nonnegative byte limit and handle the new failure in the error channel.InvalidBodyLimitfrom@shivaedev/http/errors.tsfor invalid byte limits. Supply finite nonnegative limits and handle that failure alongside existing response failures.@shivaedev/identity
betterAuthMcprequiresadmitsUser. PassadmitsUser: mounted.admitsUserfrombetterAuthMountalongsideauth: mounted.auth. Each MCP request refuses users denied by the identity sign-in policy; existing tokens follow admission changes on the next request.@shivaedev/local-postgres
clientConnectionnow returns an Effect. Replace direct calls withyield* clientConnection(url, options)inside an Effect program so password decoding failures stay in the typed error channel.@shivaedev/mcp
betterAuthMcprequiresadmitsUser. PassadmitsUser: mounted.admitsUserfrombetterAuthMountalongsideauth: mounted.auth. Each MCP request refuses users denied by the identity sign-in policy; existing tokens follow admission changes on the next request.@shivaedev/pr-watch
GitHubservice’sconfirmQueuemethod now returnsSnapshot | undefined. Direct callers must treatundefinedas an unconfirmed observation and retain the last successful snapshot without emitting transitions. Custom adapters can returnundefinedto defer confirmation.checkFailurescan returnundefinedwhen required-check metadata is incomplete. Direct callers must treatundefinedas pending and retain their last observation until metadata is complete;truestill means a required failure andfalsemeans no required failures were observed with sufficient metadata.@shivaedev/quality
manifestReaderrequires an Effect scope so its reads stop when the owning operation ends. Consumers must create and use the reader withinEffect.scoped.ImportGraphincludes requiredconfigFindingsmetadata. Consumers constructing graphs themselves must supply this array (configFindings: []when there are no diagnostics); graphs returned byimportGraphalready include it.@shivaedev/rate-limit
@shivaedev/rate-limitnow fails with the sharedTooManyRequests. Replace imports from@shivaedev/rate-limit/TooManyRequests.tswith@shivaedev/errors/taxonomy.tsand add@shivaedev/errorsas a dependency. Use that shared schema in contract rejections and custom stores. ItskeyandretryAtfields are optional because other callers can create message-only failures; check for their presence before using them. The limiter continues to supply both fields. The old module is removed without an alias.@shivaedev/react
@shivaedev/react/client/mountLive.tsnow runmountLive(client, window)as an Effect requiringAtomRegistry.AtomRegistry, instead of passing the registry as its first argument. Provide the registry withEffect.provideService(AtomRegistry.AtomRegistry, registry)and call the returned cleanup when the reader unmounts.queryRoutenow requirelocationalongsideabortController, context, deps and params. Pass the native TanStack loader context, or add the requested location to a custom loader invocation.@shivaedev/releases
checkReleaseCoveragenow requiresFileSystem.FileSystemto read the recorded release base. ProvideNodeServices.layerfrom@effect/platform-node, or add a filesystem layer alongside the existing child-process spawner.planRelease,applyRelease, and theplanandapplyCLI commands now read the Git base to reject removed dependencies even with registry version ranges. Run them in a Git repository with a resolvableorigin/mainormainand common history. Effect API callers must provideChildProcessSpawner.ChildProcessSpawneralongsideFileSystem.FileSystem(for example withNodeServices.layer) and handleGitErrorfailures from history reads. For Git-free snapshot planning, callcomputePlan(packages, sources, previousPackages)with the base packages explicitly.@shivaedev/sql
batchnow publish at their outermost transaction's commit, honoring the scopedCommittedSink, instead of waiting for the batch to end. Use an enclosing transaction when writes and their changes must commit together, or coalesce in the sink when independent transactions need grouped delivery. Nontransactional batch changes still wait for the batch to end, and rolled-back transactions publish nothing.BucketRegistrationError.invalidFieldsnaming the rejected fields. Use string or number schemas, optionally nullable or optional, for bucket values. Codecs such asSchema.NumberFromStringremain supported. Replace opaque declarations with an explicit string or number schema and refinements. When constructingBucketRegistrationErrordirectly, supplyinvalidFields(an empty array for field-name mismatches).postgresRelease(...).applymust handleSchemaErroralongsideSqlErrorbecause the component now decodes its PostgreSQL clock row.@shivaedev/vitest-rerun
Snapshotvalues for the exported internal merge API must supplysummarywith Vitest's snapshot summary. The runner creates this field automatically.@shivaedev/webhooks
WebhookEvent.decodereports payload decoding failures asWebhookPayloadErrorfrom@shivaedev/webhooks/server/WebhookPayloadError.ts, with the originalSchemaErrorincause. Direct callers must catchWebhookPayloadErrorinstead ofSchemaErrorfor invalid payloads. Custom event decoders must wrap payload schema failures innew WebhookPayloadError({ cause }), or usewebhookEventto separate decoding from application mapping. Application failures keep their original error types.@shivaedev/work-board
Changes.filesis replaced byChanges.inventory, which returns{ files, unavailable }. Consumers must readinventory.filesand qualify identity and membership usinginventory.unavailable.updateFilesaccepts and returns this inventory. Navigation membership counts are nullable; treatnullas unknown while the index is incomplete.listMarkdownfails when a directory cannot be read; usescanMarkdownto inspect readable files alongside unavailable paths.BoardFailurecodeincomplete-observationwhile sources are unavailable. Consumers must treat identity and membership as unknown and retain existing execution state until sources can be read again.@shivaedev/work-fleet
hostPolicymust now provideLaunchTierfromhost/launchTier.ts. ProvidelaunchTierLayerwith the host'sMainSourceandGithubApi;fleetHostLayerand the CLI wire this automatically.GitHubservice’sconfirmQueuemethod now returnsSnapshot | undefined. Direct callers must treatundefinedas an unconfirmed observation and retain the last successful snapshot without emitting transitions. Custom adapters can returnundefinedto defer confirmation.Changes.filesis replaced byChanges.inventory, which returns{ files, unavailable }. Consumers must readinventory.filesand qualify identity and membership usinginventory.unavailable.updateFilesaccepts and returns this inventory. Navigation membership counts are nullable; treatnullas unknown while the index is incomplete.listMarkdownfails when a directory cannot be read; usescanMarkdownto inspect readable files alongside unavailable paths.BoardFailurecodeincomplete-observationwhile sources are unavailable. Consumers must treat identity and membership as unknown and retain existing execution state until sources can be read again.Why?
This PR holds the current release plan: press Approve and run, then merge when full CI is green.
How?
This branch is regenerated from main with the releases plan applied. Merging it publishes through the existing main-only npm trusted publishing workflow.
Changes
admin-collection-policy.md
Packages: @shivaedev/admin
Fixed
admin-route-overlaps.md
Packages: @shivaedev/admin
Breaking
Fixed
/adminand/admin/in both the client and server guards.Fixed
admin-session-contracts.md
Packages: @shivaedev/admin
Fixed
adminPageand preserve their scope through middleware and client binding, including queries usingreadsCollections.app-auth-quota.md
Packages: @shivaedev/github
Fixed
GitHubRateLimited, and requests fail locally until its deadline instead of repeating authentication requests.Breaking
GitHubTokenproviders can now fail withGitHubRateLimitedalongsideGitHubAppError. Consumers handling authentication failures must also handleGitHubRateLimitedand use itsretryAtwhen scheduling another attempt.automatic-query-request-headers.md
Packages: @shivaedev/contract
Fixed
Fixed
batched-commit-delivery.md
Packages: @shivaedev/changes, @shivaedev/sql
Breaking
batchnow publish at their outermost transaction's commit, honoring the scopedCommittedSink, instead of waiting for the batch to end. Use an enclosing transaction when writes and their changes must commit together, or coalesce in the sink when independent transactions need grouped delivery. Nontransactional batch changes still wait for the batch to end, and rolled-back transactions publish nothing.Fixed
board-migration-owned-files.md
Packages: @shivaedev/work-board
Fixed
bounded-response-edges.md
Packages: @shivaedev/http, @shivaedev/github
Fixed
Fixed
Breaking
InvalidBodyLimiterror fromerrors.ts. Pass a finite nonnegative byte limit and handle the new failure in the error channel.Breaking
InvalidBodyLimitfrom@shivaedev/http/errors.tsfor invalid byte limits. Supply finite nonnegative limits and handle that failure alongside existing response failures.bounded-worker-drain.md
Packages: @shivaedev/jobs
Fixed
stop.timeout(30 seconds by default). Workers drain concurrently, interrupt in-flight Effects at the timeout and log a warning for each registration that times out. Work that finishes within the timeout completes normally.browser-check-current-captures.md
Packages: @shivaedev/browser-check
Fixed
Fixed
browser-check-visible-inputs.md
Packages: @shivaedev/browser-check
Fixed
Fixed
browser-live-waits.md
Packages: @shivaedev/browser-check
Fixed
notes.listrequest instead of matching words in unrelated frames.browser-report-privacy.md
Packages: @shivaedev/errors, @shivaedev/server, @shivaedev/create-app
Added
redactBrowserTextto mask quoted browser literals, including escaped quotes and multiline content, while preserving diagnostic shape and the existing server text policy.Added
browserErrorssettings for an Error log per report, signed-inuser.idattribution and session enforcement. The starter enables all three.Fixed
bucket-value-registration.md
Packages: @shivaedev/changes, @shivaedev/sql
Added
@shivaedev/changes/keys.tsexportsisBucketSchemato check whether a schema decodes to string or number keys, including nullable and optional model fields.declaredBucketsincludes this check assupported.Breaking
BucketRegistrationError.invalidFieldsnaming the rejected fields. Use string or number schemas, optionally nullable or optional, for bucket values. Codecs such asSchema.NumberFromStringremain supported. Replace opaque declarations with an explicit string or number schema and refinements. When constructingBucketRegistrationErrordirectly, supplyinvalidFields(an empty array for field-name mismatches).calm-handoff-format.md
Packages: @shivaedev/work-board
Fixed
calm-manifest-reads.md
Packages: @shivaedev/quality
Fixed
Fixed
manifests/valid; keep optional missing-file lookups unchanged.Breaking
manifestReaderrequires an Effect scope so its reads stop when the owning operation ends. Consumers must create and use the reader withinEffect.scoped.channel-acquisition-boundary.md
Packages: @shivaedev/changes
Added
Breaking
withinnow receives aTransactionBoundaryas its second argument. Unary adapters remain compatible. Wrap a native combinator that already accepts a second options argument as(body) => native(body, options)to keep those options explicit.ci-capacity-tier.md
Packages: @shivaedev/work-fleet
Added
Breaking
hostPolicymust now provideLaunchTierfromhost/launchTier.ts. ProvidelaunchTierLayerwith the host'sMainSourceandGithubApi;fleetHostLayerand the CLI wire this automatically.compiler-import-analysis.md
Packages: @shivaedev/quality
Fixed
Breaking
ImportGraphincludes requiredconfigFindingsmetadata. Consumers constructing graphs themselves must supply this array (configFindings: []when there are no diagnostics); graphs returned byimportGraphalready include it.current-form-messages.md
Packages: @shivaedev/form
Added
errorAt([])after submission and withInvalid.formMessageon invalid submissions.Fixed
Breaking
messageAtPath(issue, [])now selects only whole-form issues. Pass a field path such as["name"]to select that field's first message.declared-retries-refused.md
Packages: @shivaedev/vitest-rerun
Fixed
--rerunsfor global fresh-process retries whose recoveries are recorded inflaky-tests.json.deliberate-file-hook-reruns.md
Packages: @shivaedev/vitest-rerun
Fixed
beforeAllorafterAllfails, including nested suite hooks. Keep unresolved hook diagnostics and new failures in the merged results.deploy-railway-services.md
Packages: @shivaedev/deploy
Added
encoded-fields-handler-construction.md
Packages: @shivaedev/errors
Fixed
Fixed
fleet-git-scope.md
Packages: @shivaedev/work-fleet
Fixed
fleet-pr-reconciliation.md
Packages: @shivaedev/work-fleet, @shivaedev/pr-watch
Breaking
GitHubservice’sconfirmQueuemethod now returnsSnapshot | undefined. Direct callers must treatundefinedas an unconfirmed observation and retain the last successful snapshot without emitting transitions. Custom adapters can returnundefinedto defer confirmation.Fixed
Fixed
freeze-approved-release.md
Packages: @shivaedev/releases
Fixed
.changeset/release-base, including after squash merging. Keep rejecting dropped or rewritten release inputs and notes. Pass the checked main revision as the optional fourth argument tocheckReleaseCoveragewhen composing repository validation.Breaking
checkReleaseCoveragenow requiresFileSystem.FileSystemto read the recorded release base. ProvideNodeServices.layerfrom@effect/platform-node, or add a filesystem layer alongside the existing child-process spawner.generated-dependency-ranges.md
Packages: @shivaedev/releases
Fixed
github-conditional-pagination.md
Packages: @shivaedev/github
Fixed
github-mutation-checks.md
Packages: @shivaedev/github
Added
voidby omitting the response schema or usingSchema.Void.Added
findLatestCheckRun, and create or update it withupsertCheckRun. Check-run responses expose the app ID when present and recognize GitHub Actions-only read statuses.Breaking
CreateCheckRunrequires a conclusion whenstatusiscompleted, with validation before any request. Consumers creating completed runs must supplyconclusion; usequeuedorin_progresswhen no conclusion is available.Breaking
CheckRunStatusincludeswaiting,requestedandpendingfrom GitHub Actions responses. Consumers with exhaustive status handling must add these cases. GitHub App create and update inputs remain restricted toqueued,in_progressandcompleted.heavy-lock-child-path.md
Packages: @shivaedev/heavy-lock
Fixed
lockPathoverrides their environment.heavy-lock-live-reclamation.md
Packages: @shivaedev/heavy-lock
Breaking
<lock>.reclaimdirectory and checks ownership before removing a stale file, so competing reclaimers never displace a live holder. Stop participants and upgrade every implementation sharing a lock path to the documented gate protocol before restarting them; implementations that rename the lock during reclamation cannot safely participate.Fixed
Fixed
HeavyLockErrorand preserve a work failure alongside the cleanup failure.heavy-lock-runtime-services.md
Packages: @shivaedev/heavy-lock
Changed
Breaking
Crypto.Cryptoalongside the filesystem, path and process-spawning services. ProvideNodeServices.layer, or addNodeCrypto.layerto a custom platform layer.Breaking
@shivaedev/heavy-lock/adapters/signals.tsinstead of@shivaedev/heavy-lock/cli/signals.ts.historical-migration-steps.md
Packages: @shivaedev/test-sql
Fixed
migrationSteps().migrateToand the starting phase ofmigrationUpgradeat the requested numbered migration without running current-schema components or publishing a release. Full migration runs still apply components and record the configured release throughmigratePostgres.hosted-migration-changes.md
Packages: @shivaedev/server
Fixed
http-pagination-origin.md
Packages: @shivaedev/http, @shivaedev/github
Fixed
Fixed
Breaking
Breaking
identity-auth-sql-interruption.md
Packages: @shivaedev/identity
Fixed
Fixed
identity-command-viewer.md
Packages: @shivaedev/identity
Fixed
incomplete-board-inventory.md
Packages: @shivaedev/work-board, @shivaedev/work-fleet
Fixed
Fixed
Breaking
Changes.filesis replaced byChanges.inventory, which returns{ files, unavailable }. Consumers must readinventory.filesand qualify identity and membership usinginventory.unavailable.updateFilesaccepts and returns this inventory. Navigation membership counts are nullable; treatnullas unknown while the index is incomplete.listMarkdownfails when a directory cannot be read; usescanMarkdownto inspect readable files alongside unavailable paths.Breaking
BoardFailurecodeincomplete-observationwhile sources are unavailable. Consumers must treat identity and membership as unknown and retain existing execution state until sources can be read again.jobs-error-callback-scope.md
Packages: @shivaedev/jobs
Fixed
onErrorcallbacks to the jobs Layer's lifetime. Closing the Layer interrupts pending callbacks and waits for them to end before release completes; callbacks that finish before shutdown behave as before.jobs-redacted-diagnostics.md
Packages: @shivaedev/jobs, @shivaedev/admin
Fixed
jsonb-filter-values.md
Packages: @shivaedev/sql
Fixed
gtorinkeys.late-save-drafts.md
Packages: @shivaedev/form, @shivaedev/react
Added
savedValuesmapping to normalize a successful submission against its captured baseline while retaining later field edits.Fixed
Fixed
local-docker-endpoint.md
Packages: @shivaedev/local-postgres
Fixed
many-github-installations.md
Packages: @shivaedev/github
Added
githubAppLayer now providesGitHubAppandwithInstallationto share clients across installations, with separate token refresh, conditional caches and rate-limit state. The cache holds at most 100 clients, evicts the least recently used client when full and replaces clients after 30 minutes idle.mapped-auth-role-administration.md
Packages: @shivaedev/identity, @shivaedev/admin
Added
Fixed
mcp-issuer-discovery.md
Packages: @shivaedev/mcp
Fixed
Fixed
AuthUnavailablechannel and retain the original cause of configuration, metadata and grant failures.Fixed
mcp-user-admission.md
Packages: @shivaedev/mcp, @shivaedev/identity
Added
admitsUser(userId)to check the current sign-in policy for authenticated users on other transports, without caching rule verdicts.Fixed
Breaking
betterAuthMcprequiresadmitsUser. PassadmitsUser: mounted.admitsUserfrombetterAuthMountalongsideauth: mounted.auth. Each MCP request refuses users denied by the identity sign-in policy; existing tokens follow admission changes on the next request.merged-run-reports.md
Packages: @shivaedev/vitest-rerun
Fixed
Breaking
Snapshotvalues for the exported internal merge API must supplysummarywith Vitest's snapshot summary. The runner creates this field automatically.native-postgres.md
Packages: @shivaedev/local-postgres
Fixed
Fixed
LocalPostgresErrorfor malformed URL password escapes instead of a defect.Breaking
clientConnectionnow returns an Effect. Replace direct calls withyield* clientConnection(url, options)inside an Effect program so password decoding failures stay in the typed error channel.nested-field-refs.md
Packages: @shivaedev/form
Fixed
otlp-response-bounds.md
Packages: @shivaedev/server
Fixed
Fixed
otlp-story-readouts.md
Packages: @shivaedev/test-story
Added
Added
pr-watch-incomplete-required-checks.md
Packages: @shivaedev/pr-watch
Breaking
checkFailurescan returnundefinedwhen required-check metadata is incomplete. Direct callers must treatundefinedas pending and retain their last observation until metadata is complete;truestill means a required failure andfalsemeans no required failures were observed with sufficient metadata.Fixed
pr-watch-interruptible-output.md
Packages: @shivaedev/pr-watch
Fixed
Fixed
proxy-url-parameters.md
Packages: @shivaedev/test-sql
Fixed
hostorportquery parameters through the disconnect proxy, sosetReachable(false)cuts existing connections and refuses new ones.quality-custom-service-config.md
Packages: @shivaedev/quality
Fixed
defineConfig, while preserving their rule IDs and schema input types.quality-empty-biome-selection.md
Packages: @shivaedev/quality
Fixed
quality lintandquality fixon Biome 2.6.3.quiet-field-rejections.md
Packages: @shivaedev/form
Fixed
quoted-credential-assignments.md
Packages: @shivaedev/errors
Fixed
reader-live-windows.md
Packages: @shivaedev/react
Breaking
@shivaedev/react/client/mountLive.tsnow runmountLive(client, window)as an Effect requiringAtomRegistry.AtomRegistry, instead of passing the registry as its first argument. Provide the registry withEffect.provideService(AtomRegistry.AtomRegistry, registry)and call the returned cleanup when the reader unmounts.Fixed
record-global-retries.md
Packages: @shivaedev/quality
Added
retryoption withtests/global-retries. Remove local retries so vitest-rerun's global reruns record flakes.rejected-response-bodies.md
Packages: @shivaedev/http, @shivaedev/github
Fixed
Fixed
release-migration-paragraphs.md
Packages: @shivaedev/releases
Fixed
released-workers-stop.md
Packages: @shivaedev/sql, @shivaedev/jobs, @shivaedev/server
Fixed
removed-release-dependencies.md
Packages: @shivaedev/releases
Fixed
workspace:targets without base manifests. Development-only dependencies and private dependents do not block removal.Breaking
planRelease,applyRelease, and theplanandapplyCLI commands now read the Git base to reject removed dependencies even with registry version ranges. Run them in a Git repository with a resolvableorigin/mainormainand common history. Effect API callers must provideChildProcessSpawner.ChildProcessSpawneralongsideFileSystem.FileSystem(for example withNodeServices.layer) and handleGitErrorfailures from history reads. For Git-free snapshot planning, callcomputePlan(packages, sources, previousPackages)with the base packages explicitly.rerun-task-identities.md
Packages: @shivaedev/vitest-rerun
Fixed
reserved-changes-operation.md
Packages: @shivaedev/contract
Fixed
$changeswith a declaration error instead of silently replacing them with the built-in changes stream.retry-skills-sync.md
Packages: @shivaedev/skills
Fixed
Fixed
.agents/skillsand.claude/skillsresolve to the same directory.route-query-recovery.md
Packages: @shivaedev/react
Added
useRetryhook fromqueryRouteso a route's error component can refresh its query and render a successful result without rebuilding the query or replacing the surrounding shell.Added
redirects.signedOutandredirects.refusedcallbacks for native typed TanStack redirects. Signed-out redirects can preserve the full return location withsignInSearch; refused reads handle bothForbiddenandQueryReadDenied.Breaking
queryRoutenow requirelocationalongsideabortController, context, deps and params. Pass the native TanStack loader context, or add the requested location to a custom loader invocation.screen-find-timeout-cleanup.md
Packages: @shivaedev/test-story
Fixed
act()scope before the story finishes, so later stories in the same file render and respond normally.service-reference-requirements.md
Packages: @shivaedev/service
Fixed
Context.Referencekeys indefineServicerequirements without treating theirneveridentifier as caller-ownedScope.Scope.session-stream-owner.md
Packages: @shivaedev/contract
Fixed
shared-rate-limit-refusal.md
Packages: @shivaedev/errors, @shivaedev/rate-limit
Added
@shivaedev/errors' sharedTooManyRequestsaccepts optionalkeyandretryAtfields, preserving rate-limit details across RPC while still accepting message-only failures.Breaking
@shivaedev/rate-limitnow fails with the sharedTooManyRequests. Replace imports from@shivaedev/rate-limit/TooManyRequests.tswith@shivaedev/errors/taxonomy.tsand add@shivaedev/errorsas a dependency. Use that shared schema in contract rejections and custom stores. ItskeyandretryAtfields are optional because other callers can create message-only failures; check for their presence before using them. The limiter continues to supply both fields. The old module is removed without an alias.signed-webhook-stories.md
Packages: @shivaedev/webhooks
Added
deliverWebhookfrom@shivaedev/webhooks/server/testing.ts. It resolves the source's configured secret, signs GitHub deliveries by default, accepts custom signers and header overrides for refusal stories, and returns the native Effect HTTP response without a test-story dependency.stale-biome-exceptions.md
Packages: @shivaedev/quality
Fixed
quality lint, naming the file/rule pair to remove from the selected Quality config.starter-enclosing-repository.md
Packages: @shivaedev/create-app
Fixed
starter-note-save-delete.md
Packages: @shivaedev/create-app
Fixed
starter-production-email.md
Packages: @shivaedev/create-app
Fixed
RESEND_API_KEY,EMAIL_FROMandPUBLIC_URLsettings. Production workers require an explicit email sender at startup; deployment instructions describe queued auth email delivery and the worker's production settings.starter-signal-settlement.md
Packages: @shivaedev/create-app
Fixed
steady-migration-runners.md
Packages: @shivaedev/sql
Breaking
Breaking
postgresRelease(...).applymust handleSchemaErroralongsideSqlErrorbecause the component now decodes its PostgreSQL clock row.Fixed
recordedAtidentifies the invocation's PostgreSQL start time; a new invocation can still deploy an earlier release label.story-kit-imports.md
Packages: @shivaedev/test-story, @shivaedev/test, @shivaedev/quality
Changed
Changed
story-lifecycle-diagnostics.md
Packages: @shivaedev/test-story
Fixed
test-layer-timeout.md
Packages: @shivaedev/test
Fixed
it.effectandit.liveshare a five-second cleanup limit andTestScopeCloseTimeouterror.test-sql-pending-acquisition.md
Packages: @shivaedev/test-sql
Fixed
Fixed
transact-pending-acquisition.md
Packages: @shivaedev/sql
Fixed
webhook-mapping-request-scope.md
Packages: @shivaedev/webhooks
Fixed
webhooks-failure-phases.md
Packages: @shivaedev/webhooks
Fixed
Breaking
WebhookEvent.decodereports payload decoding failures asWebhookPayloadErrorfrom@shivaedev/webhooks/server/WebhookPayloadError.ts, with the originalSchemaErrorincause. Direct callers must catchWebhookPayloadErrorinstead ofSchemaErrorfor invalid payloads. Custom event decoders must wrap payload schema failures innew WebhookPayloadError({ cause }), or usewebhookEventto separate decoding from application mapping. Application failures keep their original error types.Decisions