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 +4 -4
- data/lib/tina4/ai.rb +5 -0
- data/lib/tina4/migration.rb +15 -12
- data/lib/tina4/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5c7293feabb257a4fc0cb5baedff6ba94989d1e7b5813be320142eba00019130
|
|
4
|
+
data.tar.gz: 58ab8e8d19a95fb653e0fbba10c75aa00971dc528c0e4206c2f2f899df8ba1a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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}"
|
data/lib/tina4/migration.rb
CHANGED
|
@@ -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)
|
|
188
|
+
description VARCHAR(500),
|
|
189
189
|
batch INTEGER NOT NULL DEFAULT 1,
|
|
190
|
-
executed_at VARCHAR(50)
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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(
|
|
221
|
-
description VARCHAR(
|
|
220
|
+
migration_name VARCHAR(500) NOT NULL UNIQUE,
|
|
221
|
+
description VARCHAR(500),
|
|
222
222
|
batch INTEGER NOT NULL DEFAULT 1,
|
|
223
|
-
|
|
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
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.
|
|
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-
|
|
11
|
+
date: 2026-07-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|