Conversation
… mutation bug Date/time/timestamp values are now emitted unquoted in OData $filter. Database.from() no longer mutates shared _useEntityIds state.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@proofkit/better-auth
@proofkit/cli
create-proofkit
@proofkit/fmdapi
@proofkit/fmodata
@proofkit/typegen
@proofkit/webviewer
commit: |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| // Get useEntityIds from database if available, otherwise default to false | ||
| this.databaseUseEntityIds = config.database?._getUseEntityIds ?? false; | ||
| // Use explicit useEntityIds if provided, otherwise fall back to database setting | ||
| this.databaseUseEntityIds = config.useEntityIds ?? config.database?._getUseEntityIds ?? false; |
There was a problem hiding this comment.
Navigate loses per-table useEntityIds after mutation fix
Medium Severity
The navigate() method creates a new EntitySet without passing useEntityIds, so it always falls back to config.database?._getUseEntityIds (the original database default). Before this PR, from() mutated the shared _useEntityIds on the database, so navigate() would inherit the per-table override via the database getter. Now that the mutation is correctly removed, navigate() silently loses the resolved useEntityIds from the parent EntitySet. For example, db.from(tableWithEntityIds).navigate(otherTable) will revert to the database default instead of preserving the entity ID setting, potentially causing queries to use field names instead of entity IDs.



Date/time/timestamp values are now emitted unquoted in OData $filter.
Database.from() no longer mutates shared _useEntityIds state.
Note
Medium Risk
Touches query/filter string generation and entity-id routing behavior, which can subtly change request URLs/filters across consumers; changes are covered by new unit tests but could affect existing integrations relying on prior quoting/mutation behavior.
Overview
Fixes OData
$filterserialization so date/time/timestamp operands are emitted without single quotes by propagating afieldTypeontoColumnand using it inFilterExpression._operandToString.Fixes a state-leak bug where
Database.from()could mutate shared_useEntityIds; it now resolvesuseEntityIdsper call and passes it intoEntitySetexplicitly.Updates CI (
continuous-release.yml) to add a dedicatedbuildjob and makespublishdepend onlint,typecheck,test, andbuild, plus adds/updates tests covering unquoted date/timestamp filters.Written by Cursor Bugbot for commit 88aa52b. This will update automatically on new commits. Configure here.