Skip to content
This repository was archived by the owner on Mar 1, 2026. It is now read-only.

feat: Source v2 schema — filter types, derivation, tile math, temporal foundation (shelved)#33

Draft
charlieforward9 wants to merge 10 commits intomainfrom
cr/source-spec
Draft

feat: Source v2 schema — filter types, derivation, tile math, temporal foundation (shelved)#33
charlieforward9 wants to merge 10 commits intomainfrom
cr/source-spec

Conversation

@charlieforward9
Copy link
Member

No description provided.

charlieforward9 and others added 10 commits February 11, 2026 21:08
…ceDerivation (#8)

Add new type and schema definitions for the source spec migration:

- PropertiesRef: GeoParquet layer references with column metadata
- SourceDerivation: parent-child lineage tracking between Sources
- PropertyColumn/PropertyLayer: structured column type definitions
- Zod schemas with full validation for all new types
- 36 tests covering schemas and round-trips

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tions (#10)

Add tile math module for MVT tile serving infrastructure:

- LOD_TIERS: 4 zoom-based tiers (overview/boundary/detail/full)
- lngLatToTile/tileToLngLat: Web Mercator z/x/y conversions
- tileToBounds/boundsToTiles: bbox <-> tile coord mapping
- getNeighborTiles: adjacent tile enumeration
- selectLOD: zoom-based LOD tier selection
- tileKey: canonical string key for caching
- 34 tests covering math, edge cases, and known coordinates

Simplify utility deferred — needs @turf/simplify dependency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
)

BREAKING: All timestamps are now Unix milliseconds (number), not ISO 8601 strings.

Source changes:
- uploadedAt/capturedAt: ISO string → number
- Motion sources: timestamps[] → temporalRange (TemporalRange)
- Added: SourceRef (lightweight reference for listing/filtering)
- Added: properties (PropertiesRef), derivation (SourceDerivation)

New filter types (replaces query.ts):
- TileFilter: server-side MVT filter params
- SourceQuery: full query with cursor pagination, sort, search
- SourceQueryResult, TileEndpoint, SourceAccessCheck/Result
- Zod schemas with validation for all filter types

Temporal operations:
- All functions renamed: createTimeRange → createTemporalRange, etc.
- All operate on TemporalRange { start: number, end: number }

Schema changes:
- Removed: iso8601Schema, timeRangeSchema, ISO8601Timestamp, TimeRange
- Added: unixMsSchema, temporalRangeSchema to common
- momentSourceSchema now restricts geometry to Point
- Group schema: createdAt/updatedAt → unixMsSchema

Other:
- Removed .js extensions from all imports (moduleResolution: bundler)
- Updated validate.ts: motion checks temporalRange instead of timestamps[]
- Deleted types/query.ts
- All 311 tests updated and passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive README.md to src/core/ documenting the data model,
schemas, STP protocol, geo/temporal utilities, and directory structure
as a self-contained reference. Remove platform-specific naming from
STP comment. Link from root README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ChatProgressEvent discriminated union (llm_start, llm_message,
tool_start, tool_end, applying_modifications) and thread onProgress
callback through createChatService, Strata.sendMessage, and
sendMessageAndApply. Fix empty final message fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: chat progress events for real-time tool-use status
@charlieforward9 charlieforward9 changed the title Cr/source spec feat: Source v2 schema — filter types, derivation, tile math, temporal foundation (shelved) Mar 1, 2026
@charlieforward9 charlieforward9 marked this pull request as draft March 1, 2026 22:01
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant