Skip to content

Meta: Spinel Date runtime, Campfire gate, Writebook emit ledger - #452

Closed
thomasklemm wants to merge 2 commits into
rubys:mainfrom
thomasklemm:cursor/spinel-meta-41f1
Closed

thomasklemm wants to merge 2 commits into
rubys:mainfrom
thomasklemm:cursor/spinel-meta-41f1

Conversation

@thomasklemm

Copy link
Copy Markdown
Collaborator

Umbrella Spinel PR. Supersedes and continues #423 (cannot push to eddygarcas:spinel-date-runtime from this agent; please close #423 in favor of this branch, or cherry-pick).

Refs #303. Coordinates with #451 (IR/YJIT meta) — this PR does not fight Relation/alloc work unless needed for Spinel compile.

Landed

Date / Spinel (from #423 + follow-ups)

  • Bounded program-defined Date for Spinel (runtime/spinel/date.rb), ISO SQL seams, JSON serialization, emit-and-run suite date_columns_spinel.
  • Campfire fix: only emit/load Date when app_uses_date (schema date columns or date values in emitted roots). Unconditional Date#strftime breaks poly Time|Date dispatch (matz/spinel#7334); Campfire has no t.date and must not load it.
  • format_db_date("") → nil; SqliteAdapter.escape_value(Date) → YYYY-MM-DD; inspect / xmlschema on Date.
  • CI: framework-tests-spinel downloads real-blog-fixture for date_columns_spinel; ci-plan owns serialization file.

Campfire

Writebook

  • Survey emit to Spinel succeeds (898 files) under --survey --allow-unsupported.
  • Native AOT currently fails at emitted Positionable#move_to_position (each.with_index / Array append sharing — Spinel subset). Honest ledger of remaining blockers (has_markdown, delegated_type, keyword rest, ingest gaps) continues on this PR.

Still open / ledger

Verification

  • cargo test --locked --test date_columns — 11 passed (includes omit-Date-when-unused).
  • Writebook/Campfire emit surveys recorded under agent artifacts.
  • Please run advisory Spinel CI (ci:full) including campfire-compare-spinel and date_columns_spinel.

Commits (stacked)

  1. Add bounded Date runtime for Spinel (from Add bounded Date runtime for Spinel #423, rebased)
  2. Gate Spinel Date load; harden date seams for Since #294 a single date column stops the spinel emit, and --allow-unsupported does not write the tree as the error says #303

eddygarcas and others added 2 commits October 5, 2026 18:52
Enable date-only schema columns in the Spinel target with a program-defined Date, ISO SQL date seams, and JSON serialization. Add native emit-and-run coverage and preserve the date boundary on other targets.

Refs rubys#303

Co-Authored-By: Codex <noreply@openai.com>
Only emit the program-defined Date class, its RBS, date JSON reopen,
and boot requires when the app uses date values. Loading Date#strftime
into every Spinel tree currently breaks poly Time|Date receivers
(matz/spinel#7334), which 500'd Campfire on /session/new.

Also: format_db_date treats "" as nil; escape_value formats Date as
YYYY-MM-DD when Date is loaded; analyzer-surface inspect/xmlschema;
CI downloads the real-blog fixture for date_columns_spinel; ci-plan
owns the serialization file.

Refs rubys#303

Co-Authored-By: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Thomas Klemm <github@tklemm.eu>
@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@thomasklemm thomasklemm closed this Oct 5, 2026
@thomasklemm

Copy link
Copy Markdown
Collaborator Author

Closed in favor of consolidating Spinel dates + Writebook/Campfire Spinel work onto the existing meta PR #451 (user preference: one meta-PR; CI stays separate).

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.

3 participants