Repository navigation
Conversation
…xf 6j6v.vbp6)
A plugin can declare `[fields.<name>] type = "datetime"`. A value must be an
RFC 3339 timestamp with a time zone; a plain date or a local time is refused.
It is stored as the same instant in UTC at whole seconds
(`2026-10-12T10:30:00+02:00` -> `2026-10-12T08:30:00Z`), so text order is
chronological order for every downstream comparison (derived ranking, hosted
fold, SQL) with nothing type-aware there. `FieldType` gains `Datetime` and
becomes #[non_exhaustive] (facade: breaking).
Tests: validator unit tests, plugin declaration, facade write path, Engine
seam, derived ranking `of = { field }`, MCP handlers, schema --json via the
file-fixture consumer, and the fold-ddb served-board round trip. Spec §5.1
and the plugins guide (EN/DE) document the type.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016q5uMUkZJQW4fckJoA3FME
cabcookie
added a commit
that referenced
this pull request
Oct 15, 2026
… 6j6v.vbp6, 4g6r) (#63) Folds #61 (vbp6) into #63 (4g6r), plus the mitigation of their combined independent review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SF3Ygocjmnwh17eTtNFoxN
Member
Author
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.
What
A plugin can declare a custom field of type
datetime:Zor±hh:mm), fractional seconds allowed.validation, naming the field): a plain date, a local time without an offset, non-RFC 3339, a UTC year outside0000..=9999.YYYY-MM-DDTHH:MM:SSZ(offset applied then discarded, fractions truncated).2026-10-12T10:30:00.9+02:00->2026-10-12T08:30:00Z.One fixed shape makes text order equal chronological order, so the derived ranking comparator (
of = { field = "..." }), the hosted fold and any SQL sort order datetime values correctly with nothing type-aware downstream. Normalization happens once at the write seam (validate::datetimefromprepare_custom_set).nxf schema --json/ MCPflow_schemareport"kind": "datetime";--setand MCPflow_create/flow_updatevalidate (MCPsetparam docs mention it).Facade
facade: breaking—plugin::FieldTypegainsDatetimeand is now#[non_exhaustive](an exhaustive external match needs a wildcard arm; later types become additive). Newvalidate::datetime. app-foundations follows with 41j0.bm81.Tests
validate::tests::datetime_*(normalization, fractions, refusals, UTC year range)plugin::tests::a_datetime_field_parses_validates_and_reports_its_kindtests/write.rs: create/update normalization + clear; refusal writes nothingtests/engine.rs:Engine::update->show_value/custom_fields_bulk, schema kindtests/derived_ranking.rs:related ... of = { field = "met" }ranks chronologically across offsets (min/max, asc/desc)custom_field_tests: create/update through the handlersky26_file_consumer:schema --jsonkind + create (file-fixture gains an optionalproduced_atdatetime)records_differential: served board holds the same UTC instant as the replicaDocs: spec
plugin-custom-fields.md§5.1 (+ TB-CF-3 note), guideplugins.mdEN/DE "Declaring custom fields".🤖 Generated with Claude Code
https://claude.ai/code/session_016q5uMUkZJQW4fckJoA3FME