tina4ruby 3.13.54 → 3.13.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd2180527148137de7bd985ed3951aefcae89d9fee30032de3c34434b3cc209e
4
- data.tar.gz: 78e32b6e6021f24c455bb002339a59c54a8a134a1b219493c6dc994d66ebaff5
3
+ metadata.gz: 5c7293feabb257a4fc0cb5baedff6ba94989d1e7b5813be320142eba00019130
4
+ data.tar.gz: 58ab8e8d19a95fb653e0fbba10c75aa00971dc528c0e4206c2f2f899df8ba1a4
5
5
  SHA512:
6
- metadata.gz: 8f422139294a6d51b34507f116dd21621e5299829b02f7ec613083bd2bc9d051a4c832c01dab8120978708fa637302b35b6b05d2f463a188f91dfc9d89d2879b
7
- data.tar.gz: 96ebc4a47de1674a828dc5913c4586fc82170f0c04159724d69a1cd6a99d15596bc5f217aa76ed4e119675559fc48d7b22cbd71eccd10e231de32d1ab2bc61da
6
+ metadata.gz: 2d83bececec8a011b7d0334e1d2cc6ef1f6e06fad16cc0b416e5eaa1d3302999c0de85fe487de980815cadd13f5d25a6c587905c4d0356e964412ac1a4e8dbc2
7
+ data.tar.gz: eeda312cf55b0df2b5ef9361bbf6e29a8f511aab8fd276a17151bf54b7b759df250df211de78651a6818b9a4431533fb5f64bcd07bcfc54d94941b3112622860
data/lib/tina4/ai.rb CHANGED
@@ -161,12 +161,17 @@ module Tina4
161
161
  "- **tina4-developer** -- Read `.claude/skills/tina4-developer/SKILL.md` before building features.\n" \
162
162
  "- **tina4-js** -- Read `.claude/skills/tina4-js/SKILL.md` for frontend work.\n" \
163
163
  "- **tina4-maintainer** -- Read `.claude/skills/tina4-maintainer/SKILL.md` for framework-level changes.\n\n" \
164
+ "If Tina4 behaves differently from what these skills describe, that is a bug in the skill. " \
165
+ "Tell the developer, then report it at https://tina4.com/report-a-skill " \
166
+ "(or open an issue on the matching tina4stack/* GitHub repo).\n\n" \
164
167
  "See https://tina4.com for full docs."
165
168
  else
166
169
  "Tina4 Skills -- read these files before working on this project:\n" \
167
170
  " .claude/skills/tina4-developer/SKILL.md (feature development)\n" \
168
171
  " .claude/skills/tina4-js/SKILL.md (frontend / tina4-js)\n" \
169
172
  " .claude/skills/tina4-maintainer/SKILL.md (framework-level changes)\n" \
173
+ "Found a skill that disagrees with how Tina4 actually behaves? Tell the developer,\n" \
174
+ "then report it at https://tina4.com/report-a-skill\n" \
170
175
  "Docs: https://tina4.com"
171
176
  end
172
177
  "#{start}\n#{body}\n#{finish}"
@@ -185,9 +185,9 @@ module Tina4
185
185
  CREATE TABLE #{TRACKING_TABLE} (
186
186
  id INTEGER NOT NULL PRIMARY KEY,
187
187
  migration_name VARCHAR(500) NOT NULL UNIQUE,
188
- description VARCHAR(500) DEFAULT '',
188
+ description VARCHAR(500),
189
189
  batch INTEGER NOT NULL DEFAULT 1,
190
- executed_at VARCHAR(50) DEFAULT CURRENT_TIMESTAMP,
190
+ executed_at VARCHAR(50) NOT NULL,
191
191
  passed INTEGER NOT NULL DEFAULT 1
192
192
  )
193
193
  SQL
@@ -211,16 +211,16 @@ module Tina4
211
211
  when "mssql", "sqlserver" then "id INTEGER IDENTITY(1,1) PRIMARY KEY"
212
212
  else "id INTEGER PRIMARY KEY AUTOINCREMENT" # sqlite (default)
213
213
  end
214
- executed_at_column = %w[mssql sqlserver].include?(engine) ?
215
- "executed_at DATETIME DEFAULT CURRENT_TIMESTAMP" :
216
- "executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
214
+ # Canonical executed_at is a written VARCHAR(50) string (no
215
+ # CURRENT_TIMESTAMP default a timestamp default on a VARCHAR is
216
+ # rejected by PostgreSQL/MySQL). recordMigration writes it explicitly.
217
217
  @db.execute(<<~SQL)
218
218
  CREATE TABLE #{TRACKING_TABLE} (
219
219
  #{id_column},
220
- migration_name VARCHAR(255) NOT NULL UNIQUE,
221
- description VARCHAR(255) DEFAULT '',
220
+ migration_name VARCHAR(500) NOT NULL UNIQUE,
221
+ description VARCHAR(500),
222
222
  batch INTEGER NOT NULL DEFAULT 1,
223
- #{executed_at_column},
223
+ executed_at VARCHAR(50) NOT NULL,
224
224
  passed INTEGER NOT NULL DEFAULT 1
225
225
  )
226
226
  SQL
@@ -628,6 +628,9 @@ module Tina4
628
628
  # Extract description from filename (strip numeric prefix and extension)
629
629
  stem = File.basename(name, File.extname(name))
630
630
  desc = stem.sub(/\A\d+_/, "").tr("_", " ")
631
+ # executed_at is a written VARCHAR(50) string (canonical shape has no
632
+ # CURRENT_TIMESTAMP default), ISO-8601 UTC. strftime avoids a require "time".
633
+ executed_at = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
631
634
  if firebird?
632
635
  # Firebird: generate ID from sequence
633
636
  row = @db.fetch_one(
@@ -635,13 +638,13 @@ module Tina4
635
638
  )
636
639
  next_id = row ? (row[:NEXT_ID] || row[:next_id] || 1).to_i : 1
637
640
  @db.execute(
638
- "INSERT INTO #{TRACKING_TABLE} (id, migration_name, description, batch, passed) VALUES (?, ?, ?, ?, ?)",
639
- [next_id, name, desc, batch, passed]
641
+ "INSERT INTO #{TRACKING_TABLE} (id, migration_name, description, batch, executed_at, passed) VALUES (?, ?, ?, ?, ?, ?)",
642
+ [next_id, name, desc, batch, executed_at, passed]
640
643
  )
641
644
  else
642
645
  @db.execute(
643
- "INSERT INTO #{TRACKING_TABLE} (migration_name, description, batch, passed) VALUES (?, ?, ?, ?)",
644
- [name, desc, batch, passed]
646
+ "INSERT INTO #{TRACKING_TABLE} (migration_name, description, batch, executed_at, passed) VALUES (?, ?, ?, ?, ?)",
647
+ [name, desc, batch, executed_at, passed]
645
648
  )
646
649
  end
647
650
  end
data/lib/tina4/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tina4
4
- VERSION = "3.13.54"
4
+ VERSION = "3.13.56"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tina4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.54
4
+ version: 3.13.56
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tina4 Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-07 00:00:00.000000000 Z
11
+ date: 2026-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack