4 Commits

Author SHA1 Message Date
uberwald f4ba85bcb9 Ajout de la gestion correcte calendrier+notes+sauvegarde position 2026-07-25 17:42:16 +02:00
uberwald 47442be3ef feat: notes de bord et sauvegarde position calendrier
- bouton crayon sur la fenêtre calendrier (MJ) → dialogue de note
- date impériale + date réelle préremplies
- append au journal configuré (créé auto si inexistant)
- appendJournalNote : labels passés depuis l'ouverture (pas de re-lecture)
- échappement XSS via jQuery .text().html()
- onSave async + await + try/catch
- sauvegarde position calendrier (client scope, debounced 300ms)
- restore position au constructeur
- close() async avec await settings.set
- boutons note et config groupés dans .mgt2-cal-actions (flex row)
2026-07-25 17:08:54 +02:00
uberwald 8882cf8ee2 Compendiums+calendrier 2026-07-23 23:29:19 +02:00
uberwald 00bcc775fe feat: calendrier impérial et conversions calendaires
- calendrier impérial : fenêtre compacte (260px), affichage date
- commande /cal, auto-ouverture paramétrable dans les settings
- socket calendarSync : mise à jour temps réel pour les joueurs
- config MJ : année, jour (label live), heure:minute, planète
- boutons +1 jour et +1 heure (report 24h→jour, 365→1)
- conversions : Solomani, Vilani, Zhodani (Olympiade), Aslan, K'Kree, Hiver
- formules wiki.travellerrpg.com/Date_Conversion, section repliable
- fix: renderChatInput /cal trop large → exact match
- fix: fenêtre refermable (onClose nullifie la référence)
- fix: socket joueur lit data direct au lieu de readCalendar()
2026-07-23 23:28:49 +02:00
93 changed files with 1333 additions and 260 deletions
+2 -1
View File
@@ -21,7 +21,8 @@
"scripts/TravellerNpcDialog.js", "scripts/TravellerNpcDialog.js",
"scripts/mgt2eMigration.js", "scripts/mgt2eMigration.js",
"scripts/npcRollTableSync.js", "scripts/npcRollTableSync.js",
"scripts/mgt2eSkills.js" "scripts/mgt2eSkills.js",
"scripts/imperialCalendar.js"
], ],
"styles": [ "styles": [
"styles/commerce.css", "styles/commerce.css",
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000168 MANIFEST-000180
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:54.209328 7f050a7fc6c0 Recovering log #166 2026/07/25-16:54:40.235374 7fb397fff6c0 Recovering log #178
2026/07/09-07:47:54.260960 7f050a7fc6c0 Delete type=3 #164 2026/07/25-16:54:40.246219 7fb397fff6c0 Delete type=3 #176
2026/07/09-07:47:54.261047 7f050a7fc6c0 Delete type=0 #166 2026/07/25-16:54:40.246321 7fb397fff6c0 Delete type=0 #178
2026/07/09-07:48:38.285484 7f0509bff6c0 Level-0 table #171: started 2026/07/25-17:22:36.365586 7fb394b4f6c0 Level-0 table #183: started
2026/07/09-07:48:38.285523 7f0509bff6c0 Level-0 table #171: 0 bytes OK 2026/07/25-17:22:36.365618 7fb394b4f6c0 Level-0 table #183: 0 bytes OK
2026/07/09-07:48:38.322960 7f0509bff6c0 Delete type=0 #169 2026/07/25-17:22:36.372300 7fb394b4f6c0 Delete type=0 #181
2026/07/09-07:48:38.360389 7f0509bff6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.379902 7fb394b4f6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.398070 7f0509bff6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.380052 7fb394b4f6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.848235 7f050b7fe6c0 Recovering log #162 2026/07/25-16:21:45.460294 7fb3977fe6c0 Recovering log #174
2026/07/09-07:36:02.858500 7f050b7fe6c0 Delete type=3 #160 2026/07/25-16:21:45.470482 7fb3977fe6c0 Delete type=3 #172
2026/07/09-07:36:02.858592 7f050b7fe6c0 Delete type=0 #162 2026/07/25-16:21:45.470569 7fb3977fe6c0 Delete type=0 #174
2026/07/09-07:36:48.535387 7f0509bff6c0 Level-0 table #167: started 2026/07/25-16:34:16.350463 7fb394b4f6c0 Level-0 table #179: started
2026/07/09-07:36:48.535414 7f0509bff6c0 Level-0 table #167: 0 bytes OK 2026/07/25-16:34:16.350531 7fb394b4f6c0 Level-0 table #179: 0 bytes OK
2026/07/09-07:36:48.542335 7f0509bff6c0 Delete type=0 #165 2026/07/25-16:34:16.357551 7fb394b4f6c0 Delete type=0 #177
2026/07/09-07:36:48.542603 7f0509bff6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.510151 7fb394b4f6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.549880 7f0509bff6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.680246 7fb394b4f6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000267 MANIFEST-000279
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:53.705532 7f050a7fc6c0 Recovering log #265 2026/07/25-16:54:40.104032 7fb3e4fff6c0 Recovering log #277
2026/07/09-07:47:53.770870 7f050a7fc6c0 Delete type=3 #263 2026/07/25-16:54:40.114576 7fb3e4fff6c0 Delete type=3 #275
2026/07/09-07:47:53.770946 7f050a7fc6c0 Delete type=0 #265 2026/07/25-16:54:40.114680 7fb3e4fff6c0 Delete type=0 #277
2026/07/09-07:48:37.982535 7f0509bff6c0 Level-0 table #270: started 2026/07/25-17:22:36.288710 7fb394b4f6c0 Level-0 table #282: started
2026/07/09-07:48:37.982591 7f0509bff6c0 Level-0 table #270: 0 bytes OK 2026/07/25-17:22:36.288757 7fb394b4f6c0 Level-0 table #282: 0 bytes OK
2026/07/09-07:48:38.024733 7f0509bff6c0 Delete type=0 #268 2026/07/25-17:22:36.295586 7fb394b4f6c0 Delete type=0 #280
2026/07/09-07:48:38.059906 7f0509bff6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.302495 7fb394b4f6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.060367 7f0509bff6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.302790 7fb394b4f6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.717067 7f050affd6c0 Recovering log #261 2026/07/25-16:21:45.335501 7fb397fff6c0 Recovering log #273
2026/07/09-07:36:02.727527 7f050affd6c0 Delete type=3 #259 2026/07/25-16:21:45.346461 7fb397fff6c0 Delete type=3 #271
2026/07/09-07:36:02.727624 7f050affd6c0 Delete type=0 #261 2026/07/25-16:21:45.346548 7fb397fff6c0 Delete type=0 #273
2026/07/09-07:36:48.470439 7f0509bff6c0 Level-0 table #266: started 2026/07/25-16:34:16.287513 7fb394b4f6c0 Level-0 table #278: started
2026/07/09-07:36:48.470483 7f0509bff6c0 Level-0 table #266: 0 bytes OK 2026/07/25-16:34:16.287557 7fb394b4f6c0 Level-0 table #278: 0 bytes OK
2026/07/09-07:36:48.477316 7f0509bff6c0 Delete type=0 #264 2026/07/25-16:34:16.294033 7fb394b4f6c0 Delete type=0 #276
2026/07/09-07:36:48.485308 7f0509bff6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.294225 7fb394b4f6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.485448 7f0509bff6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.301494 7fb394b4f6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000151 MANIFEST-000163
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:54.321155 7f050a7fc6c0 Recovering log #149 2026/07/25-16:54:40.265755 7fb397fff6c0 Recovering log #161
2026/07/09-07:47:54.377672 7f050a7fc6c0 Delete type=3 #147 2026/07/25-16:54:40.276688 7fb397fff6c0 Delete type=3 #159
2026/07/09-07:47:54.377740 7f050a7fc6c0 Delete type=0 #149 2026/07/25-16:54:40.276786 7fb397fff6c0 Delete type=0 #161
2026/07/09-07:48:38.398090 7f0509bff6c0 Level-0 table #154: started 2026/07/25-17:22:36.380101 7fb394b4f6c0 Level-0 table #166: started
2026/07/09-07:48:38.398123 7f0509bff6c0 Level-0 table #154: 0 bytes OK 2026/07/25-17:22:36.380168 7fb394b4f6c0 Level-0 table #166: 0 bytes OK
2026/07/09-07:48:38.434275 7f0509bff6c0 Delete type=0 #152 2026/07/25-17:22:36.386681 7fb394b4f6c0 Delete type=0 #164
2026/07/09-07:48:38.666470 7f0509bff6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.535741 7fb394b4f6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.666636 7f0509bff6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.806569 7fb394b4f6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.877078 7f050a7fc6c0 Recovering log #145 2026/07/25-16:21:45.488403 7fb397fff6c0 Recovering log #157
2026/07/09-07:36:02.887569 7f050a7fc6c0 Delete type=3 #143 2026/07/25-16:21:45.499075 7fb397fff6c0 Delete type=3 #155
2026/07/09-07:36:02.887679 7f050a7fc6c0 Delete type=0 #145 2026/07/25-16:21:45.499160 7fb397fff6c0 Delete type=0 #157
2026/07/09-07:36:48.550279 7f0509bff6c0 Level-0 table #150: started 2026/07/25-16:34:16.357718 7fb394b4f6c0 Level-0 table #162: started
2026/07/09-07:36:48.550316 7f0509bff6c0 Level-0 table #150: 0 bytes OK 2026/07/25-16:34:16.357749 7fb394b4f6c0 Level-0 table #162: 0 bytes OK
2026/07/09-07:36:48.556963 7f0509bff6c0 Delete type=0 #148 2026/07/25-16:34:16.364285 7fb394b4f6c0 Delete type=0 #160
2026/07/09-07:36:48.661449 7f0509bff6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.510175 7fb394b4f6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.668497 7f0509bff6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.680277 7fb394b4f6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000270 MANIFEST-000282
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:53.773960 7f050b7fe6c0 Recovering log #268 2026/07/25-16:54:40.118657 7fb3977fe6c0 Recovering log #280
2026/07/09-07:47:53.821289 7f050b7fe6c0 Delete type=3 #266 2026/07/25-16:54:40.129567 7fb3977fe6c0 Delete type=3 #278
2026/07/09-07:47:53.821386 7f050b7fe6c0 Delete type=0 #268 2026/07/25-16:54:40.129662 7fb3977fe6c0 Delete type=0 #280
2026/07/09-07:48:38.024951 7f0509bff6c0 Level-0 table #273: started 2026/07/25-17:22:36.295712 7fb394b4f6c0 Level-0 table #285: started
2026/07/09-07:48:38.024989 7f0509bff6c0 Level-0 table #273: 0 bytes OK 2026/07/25-17:22:36.295740 7fb394b4f6c0 Level-0 table #285: 0 bytes OK
2026/07/09-07:48:38.059685 7f0509bff6c0 Delete type=0 #271 2026/07/25-17:22:36.302356 7fb394b4f6c0 Delete type=0 #283
2026/07/09-07:48:38.059971 7f0509bff6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.302757 7fb394b4f6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.060328 7f0509bff6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.317403 7fb394b4f6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.731119 7f050bfff6c0 Recovering log #264 2026/07/25-16:21:45.349559 7fb396ffd6c0 Recovering log #276
2026/07/09-07:36:02.742454 7f050bfff6c0 Delete type=3 #262 2026/07/25-16:21:45.359598 7fb396ffd6c0 Delete type=3 #274
2026/07/09-07:36:02.742522 7f050bfff6c0 Delete type=0 #264 2026/07/25-16:21:45.359698 7fb396ffd6c0 Delete type=0 #276
2026/07/09-07:36:48.477465 7f0509bff6c0 Level-0 table #269: started 2026/07/25-16:34:16.308405 7fb394b4f6c0 Level-0 table #281: started
2026/07/09-07:36:48.477492 7f0509bff6c0 Level-0 table #269: 0 bytes OK 2026/07/25-16:34:16.308432 7fb394b4f6c0 Level-0 table #281: 0 bytes OK
2026/07/09-07:36:48.485137 7f0509bff6c0 Delete type=0 #267 2026/07/25-16:34:16.316009 7fb394b4f6c0 Delete type=0 #279
2026/07/09-07:36:48.485456 7f0509bff6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.322893 7fb394b4f6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.485475 7f0509bff6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.323046 7fb394b4f6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000204 MANIFEST-000216
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:47:54.050067 7f050b7fe6c0 Recovering log #202 2026/07/25-16:54:40.192611 7fb3e4fff6c0 Recovering log #214
2026/07/09-07:47:54.099565 7f050b7fe6c0 Delete type=3 #200 2026/07/25-16:54:40.203144 7fb3e4fff6c0 Delete type=3 #212
2026/07/09-07:47:54.099699 7f050b7fe6c0 Delete type=0 #202 2026/07/25-16:54:40.203218 7fb3e4fff6c0 Delete type=0 #214
2026/07/09-07:48:38.167794 7f0509bff6c0 Level-0 table #207: started 2026/07/25-17:22:36.334207 7fb394b4f6c0 Level-0 table #219: started
2026/07/09-07:48:38.167822 7f0509bff6c0 Level-0 table #207: 0 bytes OK 2026/07/25-17:22:36.334237 7fb394b4f6c0 Level-0 table #219: 0 bytes OK
2026/07/09-07:48:38.205849 7f0509bff6c0 Delete type=0 #205 2026/07/25-17:22:36.344490 7fb394b4f6c0 Delete type=0 #217
2026/07/09-07:48:38.206313 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.358562 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:36:02.804987 7f050b7fe6c0 Recovering log #198 2026/07/25-16:21:45.418689 7fb397fff6c0 Recovering log #210
2026/07/09-07:36:02.815231 7f050b7fe6c0 Delete type=3 #196 2026/07/25-16:21:45.429568 7fb397fff6c0 Delete type=3 #208
2026/07/09-07:36:02.815327 7f050b7fe6c0 Delete type=0 #198 2026/07/25-16:21:45.429651 7fb397fff6c0 Delete type=0 #210
2026/07/09-07:36:48.506023 7f0509bff6c0 Level-0 table #203: started 2026/07/25-16:34:16.329833 7fb394b4f6c0 Level-0 table #215: started
2026/07/09-07:36:48.506050 7f0509bff6c0 Level-0 table #203: 0 bytes OK 2026/07/25-16:34:16.329859 7fb394b4f6c0 Level-0 table #215: 0 bytes OK
2026/07/09-07:36:48.513417 7f0509bff6c0 Delete type=0 #201 2026/07/25-16:34:16.336695 7fb394b4f6c0 Delete type=0 #213
2026/07/09-07:36:48.513592 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.350122 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000212 MANIFEST-000224
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:53.935957 7f050b7fe6c0 Recovering log #210 2026/07/25-16:54:40.162927 7fb3e4fff6c0 Recovering log #222
2026/07/09-07:47:53.985176 7f050b7fe6c0 Delete type=3 #208 2026/07/25-16:54:40.173541 7fb3e4fff6c0 Delete type=3 #220
2026/07/09-07:47:53.985278 7f050b7fe6c0 Delete type=0 #210 2026/07/25-16:54:40.173643 7fb3e4fff6c0 Delete type=0 #222
2026/07/09-07:48:38.131413 7f0509bff6c0 Level-0 table #215: started 2026/07/25-17:22:36.324212 7fb394b4f6c0 Level-0 table #227: started
2026/07/09-07:48:38.131448 7f0509bff6c0 Level-0 table #215: 0 bytes OK 2026/07/25-17:22:36.324245 7fb394b4f6c0 Level-0 table #227: 0 bytes OK
2026/07/09-07:48:38.167610 7f0509bff6c0 Delete type=0 #213 2026/07/25-17:22:36.333994 7fb394b4f6c0 Delete type=0 #225
2026/07/09-07:48:38.206192 7f0509bff6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.358543 7fb394b4f6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.206346 7f0509bff6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.358932 7fb394b4f6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.775383 7f050b7fe6c0 Recovering log #206 2026/07/25-16:21:45.391004 7fb397fff6c0 Recovering log #218
2026/07/09-07:36:02.786524 7f050b7fe6c0 Delete type=3 #204 2026/07/25-16:21:45.401154 7fb397fff6c0 Delete type=3 #216
2026/07/09-07:36:02.786596 7f050b7fe6c0 Delete type=0 #206 2026/07/25-16:21:45.401258 7fb397fff6c0 Delete type=0 #218
2026/07/09-07:36:48.485579 7f0509bff6c0 Level-0 table #211: started 2026/07/25-16:34:16.316171 7fb394b4f6c0 Level-0 table #223: started
2026/07/09-07:36:48.485602 7f0509bff6c0 Level-0 table #211: 0 bytes OK 2026/07/25-16:34:16.316199 7fb394b4f6c0 Level-0 table #223: 0 bytes OK
2026/07/09-07:36:48.492088 7f0509bff6c0 Delete type=0 #209 2026/07/25-16:34:16.322746 7fb394b4f6c0 Delete type=0 #221
2026/07/09-07:36:48.513557 7f0509bff6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.323022 7fb394b4f6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.513899 7f0509bff6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.329820 7fb394b4f6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000204 MANIFEST-000216
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:47:54.102814 7f050affd6c0 Recovering log #202 2026/07/25-16:54:40.207018 7fb396ffd6c0 Recovering log #214
2026/07/09-07:47:54.154259 7f050affd6c0 Delete type=3 #200 2026/07/25-16:54:40.218111 7fb396ffd6c0 Delete type=3 #212
2026/07/09-07:47:54.154356 7f050affd6c0 Delete type=0 #202 2026/07/25-16:54:40.218206 7fb396ffd6c0 Delete type=0 #214
2026/07/09-07:48:38.323204 7f0509bff6c0 Level-0 table #207: started 2026/07/25-17:22:36.344663 7fb394b4f6c0 Level-0 table #219: started
2026/07/09-07:48:38.323240 7f0509bff6c0 Level-0 table #207: 0 bytes OK 2026/07/25-17:22:36.344695 7fb394b4f6c0 Level-0 table #219: 0 bytes OK
2026/07/09-07:48:38.360093 7f0509bff6c0 Delete type=0 #205 2026/07/25-17:22:36.351019 7fb394b4f6c0 Delete type=0 #217
2026/07/09-07:48:38.360539 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.358578 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:36:02.819029 7f050bfff6c0 Recovering log #198 2026/07/25-16:21:45.432370 7fb3e4fff6c0 Recovering log #210
2026/07/09-07:36:02.829464 7f050bfff6c0 Delete type=3 #196 2026/07/25-16:21:45.442645 7fb3e4fff6c0 Delete type=3 #208
2026/07/09-07:36:02.829554 7f050bfff6c0 Delete type=0 #198 2026/07/25-16:21:45.442704 7fb3e4fff6c0 Delete type=0 #210
2026/07/09-07:36:48.514172 7f0509bff6c0 Level-0 table #203: started 2026/07/25-16:34:16.336838 7fb394b4f6c0 Level-0 table #215: started
2026/07/09-07:36:48.514234 7f0509bff6c0 Level-0 table #203: 0 bytes OK 2026/07/25-16:34:16.336867 7fb394b4f6c0 Level-0 table #215: 0 bytes OK
2026/07/09-07:36:48.520806 7f0509bff6c0 Delete type=0 #201 2026/07/25-16:34:16.343246 7fb394b4f6c0 Delete type=0 #213
2026/07/09-07:36:48.542471 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.350151 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000185 MANIFEST-000197
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:54.157744 7f050b7fe6c0 Recovering log #183 2026/07/25-16:54:40.221457 7fb3e4fff6c0 Recovering log #195
2026/07/09-07:47:54.205288 7f050b7fe6c0 Delete type=3 #181 2026/07/25-16:54:40.231541 7fb3e4fff6c0 Delete type=3 #193
2026/07/09-07:47:54.205375 7f050b7fe6c0 Delete type=0 #183 2026/07/25-16:54:40.231630 7fb3e4fff6c0 Delete type=0 #195
2026/07/09-07:48:38.206467 7f0509bff6c0 Level-0 table #188: started 2026/07/25-17:22:36.358974 7fb394b4f6c0 Level-0 table #200: started
2026/07/09-07:48:38.206514 7f0509bff6c0 Level-0 table #188: 0 bytes OK 2026/07/25-17:22:36.359013 7fb394b4f6c0 Level-0 table #200: 0 bytes OK
2026/07/09-07:48:38.247875 7f0509bff6c0 Delete type=0 #186 2026/07/25-17:22:36.365407 7fb394b4f6c0 Delete type=0 #198
2026/07/09-07:48:38.360346 7f0509bff6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.379885 7fb394b4f6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.360529 7f0509bff6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.380062 7fb394b4f6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.833115 7f050affd6c0 Recovering log #179 2026/07/25-16:21:45.445936 7fb397fff6c0 Recovering log #191
2026/07/09-07:36:02.843924 7f050affd6c0 Delete type=3 #177 2026/07/25-16:21:45.456628 7fb397fff6c0 Delete type=3 #189
2026/07/09-07:36:02.844020 7f050affd6c0 Delete type=0 #179 2026/07/25-16:21:45.456706 7fb397fff6c0 Delete type=0 #191
2026/07/09-07:36:48.520958 7f0509bff6c0 Level-0 table #184: started 2026/07/25-16:34:16.343456 7fb394b4f6c0 Level-0 table #196: started
2026/07/09-07:36:48.520983 7f0509bff6c0 Level-0 table #184: 0 bytes OK 2026/07/25-16:34:16.343486 7fb394b4f6c0 Level-0 table #196: 0 bytes OK
2026/07/09-07:36:48.528268 7f0509bff6c0 Delete type=0 #182 2026/07/25-16:34:16.349952 7fb394b4f6c0 Delete type=0 #194
2026/07/09-07:36:48.542488 7f0509bff6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.350230 7fb394b4f6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.549898 7f0509bff6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.350280 7fb394b4f6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000212 MANIFEST-000224
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:53.824918 7f050bfff6c0 Recovering log #210 2026/07/25-16:54:40.134268 7fb3e4fff6c0 Recovering log #222
2026/07/09-07:47:53.877561 7f050bfff6c0 Delete type=3 #208 2026/07/25-16:54:40.144763 7fb3e4fff6c0 Delete type=3 #220
2026/07/09-07:47:53.877656 7f050bfff6c0 Delete type=0 #210 2026/07/25-16:54:40.144868 7fb3e4fff6c0 Delete type=0 #222
2026/07/09-07:48:38.060381 7f0509bff6c0 Level-0 table #215: started 2026/07/25-17:22:36.302800 7fb394b4f6c0 Level-0 table #227: started
2026/07/09-07:48:38.060435 7f0509bff6c0 Level-0 table #215: 0 bytes OK 2026/07/25-17:22:36.302838 7fb394b4f6c0 Level-0 table #227: 0 bytes OK
2026/07/09-07:48:38.094447 7f0509bff6c0 Delete type=0 #213 2026/07/25-17:22:36.309558 7fb394b4f6c0 Delete type=0 #225
2026/07/09-07:48:38.206140 7f0509bff6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.324180 7fb394b4f6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.206298 7f0509bff6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.334192 7fb394b4f6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.746093 7f050affd6c0 Recovering log #206 2026/07/25-16:21:45.362950 7fb397fff6c0 Recovering log #218
2026/07/09-07:36:02.757529 7f050affd6c0 Delete type=3 #204 2026/07/25-16:21:45.374396 7fb397fff6c0 Delete type=3 #216
2026/07/09-07:36:02.757641 7f050affd6c0 Delete type=0 #206 2026/07/25-16:21:45.374487 7fb397fff6c0 Delete type=0 #218
2026/07/09-07:36:48.492215 7f0509bff6c0 Level-0 table #211: started 2026/07/25-16:34:16.294555 7fb394b4f6c0 Level-0 table #223: started
2026/07/09-07:36:48.492240 7f0509bff6c0 Level-0 table #211: 0 bytes OK 2026/07/25-16:34:16.294610 7fb394b4f6c0 Level-0 table #223: 0 bytes OK
2026/07/09-07:36:48.498996 7f0509bff6c0 Delete type=0 #209 2026/07/25-16:34:16.301357 7fb394b4f6c0 Delete type=0 #221
2026/07/09-07:36:48.513570 7f0509bff6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.316155 7fb394b4f6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.513598 7f0509bff6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.322906 7fb394b4f6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000204 MANIFEST-000216
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:47:53.881056 7f050affd6c0 Recovering log #202 2026/07/25-16:54:40.148506 7fb3977fe6c0 Recovering log #214
2026/07/09-07:47:53.932822 7f050affd6c0 Delete type=3 #200 2026/07/25-16:54:40.159742 7fb3977fe6c0 Delete type=3 #212
2026/07/09-07:47:53.932920 7f050affd6c0 Delete type=0 #202 2026/07/25-16:54:40.159842 7fb3977fe6c0 Delete type=0 #214
2026/07/09-07:48:38.094630 7f0509bff6c0 Level-0 table #207: started 2026/07/25-17:22:36.317424 7fb394b4f6c0 Level-0 table #219: started
2026/07/09-07:48:38.094656 7f0509bff6c0 Level-0 table #207: 0 bytes OK 2026/07/25-17:22:36.317453 7fb394b4f6c0 Level-0 table #219: 0 bytes OK
2026/07/09-07:48:38.131201 7f0509bff6c0 Delete type=0 #205 2026/07/25-17:22:36.324008 7fb394b4f6c0 Delete type=0 #217
2026/07/09-07:48:38.206170 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.334172 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/07/09-07:36:02.761515 7f050bfff6c0 Recovering log #198 2026/07/25-16:21:45.377631 7fb3e4fff6c0 Recovering log #210
2026/07/09-07:36:02.772174 7f050bfff6c0 Delete type=3 #196 2026/07/25-16:21:45.388254 7fb3e4fff6c0 Delete type=3 #208
2026/07/09-07:36:02.772292 7f050bfff6c0 Delete type=0 #198 2026/07/25-16:21:45.388347 7fb3e4fff6c0 Delete type=0 #210
2026/07/09-07:36:48.499125 7f0509bff6c0 Level-0 table #203: started 2026/07/25-16:34:16.301508 7fb394b4f6c0 Level-0 table #215: started
2026/07/09-07:36:48.499149 7f0509bff6c0 Level-0 table #203: 0 bytes OK 2026/07/25-16:34:16.301533 7fb394b4f6c0 Level-0 table #215: 0 bytes OK
2026/07/09-07:36:48.505893 7f0509bff6c0 Delete type=0 #201 2026/07/25-16:34:16.308270 7fb394b4f6c0 Delete type=0 #213
2026/07/09-07:36:48.513580 7f0509bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.322878 7fb394b4f6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000212 MANIFEST-000224
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:53.990492 7f050affd6c0 Recovering log #210 2026/07/25-16:54:40.177967 7fb397fff6c0 Recovering log #222
2026/07/09-07:47:54.046515 7f050affd6c0 Delete type=3 #208 2026/07/25-16:54:40.189174 7fb397fff6c0 Delete type=3 #220
2026/07/09-07:47:54.046608 7f050affd6c0 Delete type=0 #210 2026/07/25-16:54:40.189264 7fb397fff6c0 Delete type=0 #222
2026/07/09-07:48:38.248094 7f0509bff6c0 Level-0 table #215: started 2026/07/25-17:22:36.351191 7fb394b4f6c0 Level-0 table #227: started
2026/07/09-07:48:38.248127 7f0509bff6c0 Level-0 table #215: 0 bytes OK 2026/07/25-17:22:36.351222 7fb394b4f6c0 Level-0 table #227: 0 bytes OK
2026/07/09-07:48:38.285238 7f0509bff6c0 Delete type=0 #213 2026/07/25-17:22:36.358358 7fb394b4f6c0 Delete type=0 #225
2026/07/09-07:48:38.360368 7f0509bff6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.358960 7fb394b4f6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.360421 7f0509bff6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.379865 7fb394b4f6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.790070 7f050bfff6c0 Recovering log #206 2026/07/25-16:21:45.404647 7fb3e4fff6c0 Recovering log #218
2026/07/09-07:36:02.801080 7f050bfff6c0 Delete type=3 #204 2026/07/25-16:21:45.415371 7fb3e4fff6c0 Delete type=3 #216
2026/07/09-07:36:02.801169 7f050bfff6c0 Delete type=0 #206 2026/07/25-16:21:45.415456 7fb3e4fff6c0 Delete type=0 #218
2026/07/09-07:36:48.528396 7f0509bff6c0 Level-0 table #211: started 2026/07/25-16:34:16.323056 7fb394b4f6c0 Level-0 table #223: started
2026/07/09-07:36:48.528420 7f0509bff6c0 Level-0 table #211: 0 bytes OK 2026/07/25-16:34:16.323083 7fb394b4f6c0 Level-0 table #223: 0 bytes OK
2026/07/09-07:36:48.535244 7f0509bff6c0 Delete type=0 #209 2026/07/25-16:34:16.329677 7fb394b4f6c0 Delete type=0 #221
2026/07/09-07:36:48.542498 7f0509bff6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.343438 7fb394b4f6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.549890 7f0509bff6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.350140 7fb394b4f6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000050 MANIFEST-000062
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:54.696879 7f050b7fe6c0 Recovering log #48 2026/07/25-16:54:40.546836 7fb3e4fff6c0 Recovering log #60
2026/07/09-07:47:54.748540 7f050b7fe6c0 Delete type=3 #46 2026/07/25-16:54:40.559140 7fb3e4fff6c0 Delete type=3 #58
2026/07/09-07:47:54.748653 7f050b7fe6c0 Delete type=0 #48 2026/07/25-16:54:40.559230 7fb3e4fff6c0 Delete type=0 #60
2026/07/09-07:48:38.622656 7f0509bff6c0 Level-0 table #53: started 2026/07/25-17:22:36.806586 7fb394b4f6c0 Level-0 table #65: started
2026/07/09-07:48:38.622702 7f0509bff6c0 Level-0 table #53: 0 bytes OK 2026/07/25-17:22:36.806624 7fb394b4f6c0 Level-0 table #65: 0 bytes OK
2026/07/09-07:48:38.666188 7f0509bff6c0 Delete type=0 #51 2026/07/25-17:22:36.813457 7fb394b4f6c0 Delete type=0 #63
2026/07/09-07:48:38.666530 7f0509bff6c0 Manual compaction at level-0 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.832126 7fb394b4f6c0 Manual compaction at level-0 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.924791 7f0509bff6c0 Manual compaction at level-1 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.880816 7fb394b4f6c0 Manual compaction at level-1 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:03.110030 7f050b7fe6c0 Recovering log #44 2026/07/25-16:21:45.739454 7fb397fff6c0 Recovering log #56
2026/07/09-07:36:03.122283 7f050b7fe6c0 Delete type=3 #42 2026/07/25-16:21:45.751415 7fb397fff6c0 Delete type=3 #54
2026/07/09-07:36:03.122371 7f050b7fe6c0 Delete type=0 #44 2026/07/25-16:21:45.751507 7fb397fff6c0 Delete type=0 #56
2026/07/09-07:36:48.557102 7f0509bff6c0 Level-0 table #49: started 2026/07/25-16:34:16.722283 7fb394b4f6c0 Level-0 table #61: started
2026/07/09-07:36:48.557128 7f0509bff6c0 Level-0 table #49: 0 bytes OK 2026/07/25-16:34:16.722319 7fb394b4f6c0 Level-0 table #61: 0 bytes OK
2026/07/09-07:36:48.564945 7f0509bff6c0 Delete type=0 #47 2026/07/25-16:34:16.729649 7fb394b4f6c0 Delete type=0 #59
2026/07/09-07:36:48.661466 7f0509bff6c0 Manual compaction at level-0 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.800931 7fb394b4f6c0 Manual compaction at level-0 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.668506 7f0509bff6c0 Manual compaction at level-1 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.860353 7fb394b4f6c0 Manual compaction at level-1 from '!actors!DL3zXfXxWMOQhXJY' @ 72057594037927935 : 1 .. '!actors.items!JAHYXFedTxNlGYX8.nmIgA3CQkOSEpCSP' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000488 MANIFEST-000530
+63 -21
View File
@@ -1,21 +1,63 @@
2026/07/09-07:47:54.381539 7f050b7fe6c0 Recovering log #482 2026/07/25-16:54:40.280606 7fb3e4fff6c0 Recovering log #517
2026/07/09-07:47:54.449522 7f050b7fe6c0 Delete type=3 #480 2026/07/25-16:54:40.291187 7fb3e4fff6c0 Delete type=3 #513
2026/07/09-07:47:54.449639 7f050b7fe6c0 Delete type=0 #482 2026/07/25-16:54:40.291276 7fb3e4fff6c0 Delete type=0 #517
2026/07/09-07:48:38.434501 7f0509bff6c0 Level-0 table #491: started 2026/07/25-16:55:19.321188 7fb394b4f6c0 Level-0 table #533: started
2026/07/09-07:48:38.581067 7f0509bff6c0 Level-0 table #491: 7799304 bytes OK 2026/07/25-16:55:19.444275 7fb394b4f6c0 Level-0 table #533: 8047048 bytes OK
2026/07/09-07:48:38.618635 7f0509bff6c0 Delete type=0 #489 2026/07/25-16:55:19.451577 7fb394b4f6c0 Delete type=0 #531
2026/07/09-07:48:38.666492 7f0509bff6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end) 2026/07/25-17:21:46.121006 7fb394b4f6c0 Level-0 table #535: started
2026/07/09-07:48:38.666799 7f0509bff6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3720162 : 1 2026/07/25-17:21:46.222937 7fb394b4f6c0 Level-0 table #535: 8120620 bytes OK
2026/07/09-07:48:38.666823 7f0509bff6c0 Compacting 1@1 + 4@2 files 2026/07/25-17:21:46.230171 7fb394b4f6c0 Delete type=0 #532
2026/07/09-07:48:38.720439 7f0509bff6c0 Generated table #492@1: 8118 keys, 2133880 bytes 2026/07/25-17:22:03.264081 7fb394b4f6c0 Level-0 table #537: started
2026/07/09-07:48:38.784916 7f0509bff6c0 Generated table #493@1: 15560 keys, 2160741 bytes 2026/07/25-17:22:03.358383 7fb394b4f6c0 Level-0 table #537: 8159715 bytes OK
2026/07/09-07:48:38.845800 7f0509bff6c0 Generated table #494@1: 16194 keys, 2162194 bytes 2026/07/25-17:22:03.366011 7fb394b4f6c0 Delete type=0 #534
2026/07/09-07:48:38.885126 7f0509bff6c0 Generated table #495@1: 9938 keys, 1338663 bytes 2026/07/25-17:22:36.394386 7fb394b4f6c0 Level-0 table #539: started
2026/07/09-07:48:38.885173 7f0509bff6c0 Compacted 1@1 + 4@2 files => 7795478 bytes 2026/07/25-17:22:36.518263 7fb394b4f6c0 Level-0 table #539: 8197558 bytes OK
2026/07/09-07:48:38.921695 7f0509bff6c0 compacted to: files[ 0 0 4 0 0 0 0 ] 2026/07/25-17:22:36.525099 7fb394b4f6c0 Delete type=0 #536
2026/07/09-07:48:38.922132 7f0509bff6c0 Delete type=2 #484 2026/07/25-17:22:36.535793 7fb394b4f6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 4024266 : 1
2026/07/09-07:48:38.922665 7f0509bff6c0 Delete type=2 #485 2026/07/25-17:22:36.535803 7fb394b4f6c0 Compacting 3@0 + 1@1 files
2026/07/09-07:48:38.923013 7f0509bff6c0 Delete type=2 #486 2026/07/25-17:22:36.589302 7fb394b4f6c0 Generated table #540@0: 7833 keys, 2132558 bytes
2026/07/09-07:48:38.923358 7f0509bff6c0 Delete type=2 #487 2026/07/25-17:22:36.667506 7fb394b4f6c0 Generated table #541@0: 15560 keys, 2160278 bytes
2026/07/09-07:48:38.923944 7f0509bff6c0 Delete type=2 #491 2026/07/25-17:22:36.735222 7fb394b4f6c0 Generated table #542@0: 16090 keys, 2162299 bytes
2026/07/09-07:48:39.004029 7f0509bff6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3720162 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.791787 7fb394b4f6c0 Generated table #543@0: 12983 keys, 1738102 bytes
2026/07/25-17:22:36.791824 7fb394b4f6c0 Compacted 3@0 + 1@1 files => 8193237 bytes
2026/07/25-17:22:36.798979 7fb394b4f6c0 compacted to: files[ 0 4 4 0 0 0 0 ]
2026/07/25-17:22:36.799753 7fb394b4f6c0 Delete type=2 #533
2026/07/25-17:22:36.801735 7fb394b4f6c0 Delete type=2 #535
2026/07/25-17:22:36.803482 7fb394b4f6c0 Delete type=2 #537
2026/07/25-17:22:36.805232 7fb394b4f6c0 Delete type=2 #539
2026/07/25-17:22:36.813620 7fb394b4f6c0 Manual compaction at level-0 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 4024266 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end)
2026/07/25-17:22:36.832161 7fb394b4f6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!Eg3PdOfCx9R54Tm6.NHK48nIoycLq56X4' @ 4160142 : 1
2026/07/25-17:22:36.832171 7fb394b4f6c0 Compacting 1@1 + 1@2 files
2026/07/25-17:22:36.867333 7fb394b4f6c0 Generated table #544@1: 7833 keys, 2132558 bytes
2026/07/25-17:22:36.872505 7fb394b4f6c0 Generated table #545@1: 338 keys, 55239 bytes
2026/07/25-17:22:36.872544 7fb394b4f6c0 Compacted 1@1 + 1@2 files => 2187797 bytes
2026/07/25-17:22:36.879490 7fb394b4f6c0 compacted to: files[ 0 3 5 0 0 0 0 ]
2026/07/25-17:22:36.879931 7fb394b4f6c0 Delete type=2 #523
2026/07/25-17:22:36.880474 7fb394b4f6c0 Delete type=2 #540
2026/07/25-17:22:36.880920 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!Eg3PdOfCx9R54Tm6.NHK48nIoycLq56X4' @ 4160142 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!bQ64721XzgOetD2v.6a2Kk3rl0H7Rij2U' @ 4171077 : 1
2026/07/25-17:22:36.880928 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-17:22:36.931840 7fb394b4f6c0 Generated table #546@1: 15560 keys, 2160278 bytes
2026/07/25-17:22:36.938177 7fb394b4f6c0 Generated table #547@1: 737 keys, 105748 bytes
2026/07/25-17:22:36.938217 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 2266026 bytes
2026/07/25-17:22:36.945137 7fb394b4f6c0 compacted to: files[ 0 2 5 0 0 0 0 ]
2026/07/25-17:22:36.945519 7fb394b4f6c0 Delete type=2 #525
2026/07/25-17:22:36.946090 7fb394b4f6c0 Delete type=2 #541
2026/07/25-17:22:36.946379 7fb394b4f6c0 Delete type=2 #545
2026/07/25-17:22:36.965952 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!bQ64721XzgOetD2v.6a2Kk3rl0H7Rij2U' @ 4171077 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!gXa1mHCjJYOtPiRx.w274XsrKfEGnYr0a' @ 4145219 : 1
2026/07/25-17:22:36.965988 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-17:22:37.021652 7fb394b4f6c0 Generated table #548@1: 16090 keys, 2162299 bytes
2026/07/25-17:22:37.028936 7fb394b4f6c0 Generated table #549@1: 1170 keys, 156119 bytes
2026/07/25-17:22:37.028974 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 2318418 bytes
2026/07/25-17:22:37.035841 7fb394b4f6c0 compacted to: files[ 0 1 5 0 0 0 0 ]
2026/07/25-17:22:37.036188 7fb394b4f6c0 Delete type=2 #527
2026/07/25-17:22:37.036784 7fb394b4f6c0 Delete type=2 #542
2026/07/25-17:22:37.037237 7fb394b4f6c0 Delete type=2 #547
2026/07/25-17:22:37.044891 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!gXa1mHCjJYOtPiRx.w274XsrKfEGnYr0a' @ 4145219 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 4128290 : 1
2026/07/25-17:22:37.044907 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-17:22:37.084375 7fb394b4f6c0 Generated table #550@1: 12983 keys, 1738102 bytes
2026/07/25-17:22:37.084414 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 1738102 bytes
2026/07/25-17:22:37.091282 7fb394b4f6c0 compacted to: files[ 0 0 4 0 0 0 0 ]
2026/07/25-17:22:37.091499 7fb394b4f6c0 Delete type=2 #529
2026/07/25-17:22:37.091903 7fb394b4f6c0 Delete type=2 #543
2026/07/25-17:22:37.092142 7fb394b4f6c0 Delete type=2 #549
2026/07/25-17:22:37.106687 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 4128290 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end)
+55 -21
View File
@@ -1,21 +1,55 @@
2026/07/09-07:36:02.891075 7f050affd6c0 Recovering log #478 2026/07/25-16:21:45.501792 7fb3e4fff6c0 Recovering log #500
2026/07/09-07:36:02.901393 7f050affd6c0 Delete type=3 #476 2026/07/25-16:21:45.512008 7fb3e4fff6c0 Delete type=3 #496
2026/07/09-07:36:02.901513 7f050affd6c0 Delete type=0 #478 2026/07/25-16:21:45.512073 7fb3e4fff6c0 Delete type=0 #500
2026/07/09-07:36:48.565124 7f0509bff6c0 Level-0 table #483: started 2026/07/25-16:24:19.128277 7fb394b4f6c0 Level-0 table #516: started
2026/07/09-07:36:48.651161 7f0509bff6c0 Level-0 table #483: 7736561 bytes OK 2026/07/25-16:24:19.244728 7fb394b4f6c0 Level-0 table #516: 7956529 bytes OK
2026/07/09-07:36:48.658601 7f0509bff6c0 Delete type=0 #481 2026/07/25-16:24:19.251153 7fb394b4f6c0 Delete type=0 #514
2026/07/09-07:36:48.668480 7f0509bff6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.371434 7fb394b4f6c0 Level-0 table #518: started
2026/07/09-07:36:48.668938 7f0509bff6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3670640 : 1 2026/07/25-16:34:16.500326 7fb394b4f6c0 Level-0 table #518: 7998817 bytes OK
2026/07/09-07:36:48.668950 7f0509bff6c0 Compacting 1@1 + 4@2 files 2026/07/25-16:34:16.508005 7fb394b4f6c0 Delete type=0 #515
2026/07/09-07:36:48.696996 7f0509bff6c0 Generated table #484@1: 8151 keys, 2133230 bytes 2026/07/25-16:34:16.510322 7fb394b4f6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3921570 : 1
2026/07/09-07:36:48.734338 7f0509bff6c0 Generated table #485@1: 15606 keys, 2160419 bytes 2026/07/25-16:34:16.510331 7fb394b4f6c0 Compacting 1@0 + 1@1 files
2026/07/09-07:36:48.767140 7f0509bff6c0 Generated table #486@1: 16209 keys, 2163737 bytes 2026/07/25-16:34:16.542074 7fb394b4f6c0 Generated table #519@0: 7972 keys, 2131647 bytes
2026/07/09-07:36:48.794374 7f0509bff6c0 Generated table #487@1: 9512 keys, 1275518 bytes 2026/07/25-16:34:16.588781 7fb394b4f6c0 Generated table #520@0: 15567 keys, 2160383 bytes
2026/07/09-07:36:48.794409 7f0509bff6c0 Compacted 1@1 + 4@2 files => 7732904 bytes 2026/07/25-16:34:16.635707 7fb394b4f6c0 Generated table #521@0: 16112 keys, 2162117 bytes
2026/07/09-07:36:48.801570 7f0509bff6c0 compacted to: files[ 0 0 4 0 0 0 0 ] 2026/07/25-16:34:16.671030 7fb394b4f6c0 Generated table #522@0: 11487 keys, 1540844 bytes
2026/07/09-07:36:48.801981 7f0509bff6c0 Delete type=2 #470 2026/07/25-16:34:16.671069 7fb394b4f6c0 Compacted 1@0 + 1@1 files => 7994991 bytes
2026/07/09-07:36:48.802506 7f0509bff6c0 Delete type=2 #472 2026/07/25-16:34:16.677382 7fb394b4f6c0 compacted to: files[ 0 4 4 0 0 0 0 ]
2026/07/09-07:36:48.802910 7f0509bff6c0 Delete type=2 #474 2026/07/25-16:34:16.678276 7fb394b4f6c0 Delete type=2 #516
2026/07/09-07:36:48.803224 7f0509bff6c0 Delete type=2 #475 2026/07/25-16:34:16.679572 7fb394b4f6c0 Delete type=2 #518
2026/07/09-07:36:48.803908 7f0509bff6c0 Delete type=2 #483 2026/07/25-16:34:16.680429 7fb394b4f6c0 Manual compaction at level-0 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3921570 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.819321 7f0509bff6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3670640 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.680597 7fb394b4f6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!Eg3PdOfCx9R54Tm6.QmTmqRtZ2zqUbNDK' @ 3951925 : 1
2026/07/25-16:34:16.680618 7fb394b4f6c0 Compacting 1@1 + 1@2 files
2026/07/25-16:34:16.710701 7fb394b4f6c0 Generated table #523@1: 7972 keys, 2131647 bytes
2026/07/25-16:34:16.714887 7fb394b4f6c0 Generated table #524@1: 166 keys, 27091 bytes
2026/07/25-16:34:16.714917 7fb394b4f6c0 Compacted 1@1 + 1@2 files => 2158738 bytes
2026/07/25-16:34:16.721082 7fb394b4f6c0 compacted to: files[ 0 3 5 0 0 0 0 ]
2026/07/25-16:34:16.721504 7fb394b4f6c0 Delete type=2 #506
2026/07/25-16:34:16.722019 7fb394b4f6c0 Delete type=2 #519
2026/07/25-16:34:16.743211 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!Eg3PdOfCx9R54Tm6.QmTmqRtZ2zqUbNDK' @ 3951925 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!bQ64721XzgOetD2v.EReJqu3wyM6vwWR7' @ 3963654 : 1
2026/07/25-16:34:16.743231 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-16:34:16.788469 7fb394b4f6c0 Generated table #525@1: 15567 keys, 2160383 bytes
2026/07/25-16:34:16.793007 7fb394b4f6c0 Generated table #526@1: 370 keys, 53494 bytes
2026/07/25-16:34:16.793036 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 2213877 bytes
2026/07/25-16:34:16.799791 7fb394b4f6c0 compacted to: files[ 0 2 5 0 0 0 0 ]
2026/07/25-16:34:16.800112 7fb394b4f6c0 Delete type=2 #508
2026/07/25-16:34:16.800586 7fb394b4f6c0 Delete type=2 #520
2026/07/25-16:34:16.800854 7fb394b4f6c0 Delete type=2 #524
2026/07/25-16:34:16.801124 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!bQ64721XzgOetD2v.EReJqu3wyM6vwWR7' @ 3963654 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!jup6vzXHR8WYariQ.9MLFLfBZxah8tU5d' @ 3930763 : 1
2026/07/25-16:34:16.801134 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-16:34:16.847533 7fb394b4f6c0 Generated table #527@1: 16112 keys, 2162117 bytes
2026/07/25-16:34:16.852860 7fb394b4f6c0 Generated table #528@1: 669 keys, 88745 bytes
2026/07/25-16:34:16.852890 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 2250862 bytes
2026/07/25-16:34:16.859163 7fb394b4f6c0 compacted to: files[ 0 1 5 0 0 0 0 ]
2026/07/25-16:34:16.859513 7fb394b4f6c0 Delete type=2 #510
2026/07/25-16:34:16.859993 7fb394b4f6c0 Delete type=2 #521
2026/07/25-16:34:16.860259 7fb394b4f6c0 Delete type=2 #526
2026/07/25-16:34:16.868258 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!jup6vzXHR8WYariQ.9MLFLfBZxah8tU5d' @ 3930763 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3921570 : 1
2026/07/25-16:34:16.868275 7fb394b4f6c0 Compacting 1@1 + 2@2 files
2026/07/25-16:34:16.902985 7fb394b4f6c0 Generated table #529@1: 11487 keys, 1540844 bytes
2026/07/25-16:34:16.903023 7fb394b4f6c0 Compacted 1@1 + 2@2 files => 1540844 bytes
2026/07/25-16:34:16.910466 7fb394b4f6c0 compacted to: files[ 0 0 4 0 0 0 0 ]
2026/07/25-16:34:16.910669 7fb394b4f6c0 Delete type=2 #512
2026/07/25-16:34:16.911042 7fb394b4f6c0 Delete type=2 #522
2026/07/25-16:34:16.911269 7fb394b4f6c0 Delete type=2 #528
2026/07/25-16:34:16.928914 7fb394b4f6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 3921570 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zzqLG98O4eFQZHp0' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000158 MANIFEST-000170
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:47:54.264845 7f050affd6c0 Recovering log #156 2026/07/25-16:54:40.250077 7fb3977fe6c0 Recovering log #168
2026/07/09-07:47:54.317032 7f050affd6c0 Delete type=3 #154 2026/07/25-16:54:40.261282 7fb3977fe6c0 Delete type=3 #166
2026/07/09-07:47:54.317136 7f050affd6c0 Delete type=0 #156 2026/07/25-16:54:40.261388 7fb3977fe6c0 Delete type=0 #168
2026/07/09-07:48:38.360596 7f0509bff6c0 Level-0 table #161: started 2026/07/25-17:22:36.372487 7fb394b4f6c0 Level-0 table #173: started
2026/07/09-07:48:38.360657 7f0509bff6c0 Level-0 table #161: 0 bytes OK 2026/07/25-17:22:36.372517 7fb394b4f6c0 Level-0 table #173: 0 bytes OK
2026/07/09-07:48:38.397839 7f0509bff6c0 Delete type=0 #159 2026/07/25-17:22:36.379686 7fb394b4f6c0 Delete type=0 #171
2026/07/09-07:48:38.622627 7f0509bff6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.379949 7fb394b4f6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/07/09-07:48:38.666513 7f0509bff6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end) 2026/07/25-17:22:36.379970 7fb394b4f6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/07/09-07:36:02.862373 7f050bfff6c0 Recovering log #152 2026/07/25-16:21:45.473663 7fb3e4fff6c0 Recovering log #164
2026/07/09-07:36:02.873718 7f050bfff6c0 Delete type=3 #150 2026/07/25-16:21:45.484922 7fb3e4fff6c0 Delete type=3 #162
2026/07/09-07:36:02.873810 7f050bfff6c0 Delete type=0 #152 2026/07/25-16:21:45.484999 7fb3e4fff6c0 Delete type=0 #164
2026/07/09-07:36:48.542619 7f0509bff6c0 Level-0 table #157: started 2026/07/25-16:34:16.364464 7fb394b4f6c0 Level-0 table #169: started
2026/07/09-07:36:48.542644 7f0509bff6c0 Level-0 table #157: 0 bytes OK 2026/07/25-16:34:16.364495 7fb394b4f6c0 Level-0 table #169: 0 bytes OK
2026/07/09-07:36:48.549739 7f0509bff6c0 Delete type=0 #155 2026/07/25-16:34:16.371260 7fb394b4f6c0 Delete type=0 #167
2026/07/09-07:36:48.550247 7f0509bff6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.510187 7fb394b4f6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/07/09-07:36:48.565110 7f0509bff6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end) 2026/07/25-16:34:16.680263 7fb394b4f6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
+95
View File
@@ -0,0 +1,95 @@
import { formatImperialDate } from './calendarDate.js';
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
export class CalendarApp extends HandlebarsApplicationMixin(ApplicationV2) {
static DEFAULT_OPTIONS = {
id: 'mgt2-calendar',
classes: ['mgt2-calendar'],
position: { width: 260, height: 'auto' },
window: {
icon: 'fas fa-calendar-alt',
title: 'Calendrier Impérial',
resizable: false,
},
};
static PARTS = {
main: {
template: `modules/${MODULE_ID}/templates/calendar-app.hbs`,
root: true,
},
};
constructor({ onConfig, onClose, onNote } = {}) {
super();
const saved = game.settings?.get(MODULE_ID, 'calendarPosition');
if (saved?.left != null && saved?.top != null) {
this.position.left = saved.left;
this.position.top = saved.top;
}
this._onConfig = onConfig;
this._onClose = onClose;
this._onNote = onNote;
this._data = { year: 1116, day: 1, hour: 12, minute: 0, planet: '' };
}
get title() {
return 'Calendrier Impérial';
}
async _prepareContext() {
return {
dateLabel: formatImperialDate(this._data),
isGM: game.user?.isGM ?? false,
};
}
async _onRender(context, options) {
await super._onRender(context, options);
const html = $(this.element);
html.find('.mgt2-cal-config-btn').on('click', () => {
this._onConfig?.();
});
html.find('.mgt2-cal-note-btn').on('click', () => {
this._onNote?.();
});
}
setPosition(position) {
const result = super.setPosition(position);
this._debouncedSavePos();
return result;
}
_debouncedSavePos() {
if (this._savePosTimeout) clearTimeout(this._savePosTimeout);
this._savePosTimeout = setTimeout(() => {
game.settings?.set(MODULE_ID, 'calendarPosition', {
left: this.position.left,
top: this.position.top,
});
this._savePosTimeout = null;
}, 300);
}
updateDisplay(data) {
this._data = { ...this._data, ...data };
this.render();
}
async close() {
if (game.settings) {
await game.settings.set(MODULE_ID, 'calendarPosition', {
left: this.position.left,
top: this.position.top,
});
}
this._onConfig = null;
this._onNote = null;
this._onClose?.();
this._onClose = null;
return super.close();
}
}
+116
View File
@@ -0,0 +1,116 @@
import { getDayLabel, computeConversions } from './calendarDate.js';
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
export class CalendarConfigDialog extends HandlebarsApplicationMixin(ApplicationV2) {
static DEFAULT_OPTIONS = {
id: 'mgt2-calendar-config',
classes: ['mgt2-calendar'],
position: { width: 300, height: 'auto' },
window: {
icon: 'fas fa-cog',
title: 'Configurer le calendrier',
resizable: false,
},
};
static PARTS = {
main: {
template: `modules/${MODULE_ID}/templates/calendar-config.hbs`,
root: true,
},
};
constructor({ data, onApply } = {}) {
super();
this._data = { ...data };
this._onApply = onApply;
}
get title() {
return 'Configurer le calendrier';
}
async _prepareContext() {
return {
year: this._data.year,
day: this._data.day,
hour: this._data.hour,
minute: this._data.minute,
planet: this._data.planet ?? '',
dayLabel: getDayLabel(this._data.day),
conversions: computeConversions(this._data.year),
};
}
async _onRender(context, options) {
await super._onRender(context, options);
const html = $(this.element);
html.find('[name="day"]').on('input', () => {
const day = parseInt(html.find('[name="day"]').val(), 10);
if (day >= 1 && day <= 365) {
html.find('.mgt2-cal-day-label').text(getDayLabel(day));
}
});
html.find('[name="year"]').on('input', () => {
const year = parseInt(html.find('[name="year"]').val(), 10) || 0;
const conv = computeConversions(year);
html.find('.mgt2-cal-conv-val[data-cal="solomani"]').text(conv.solomani);
html.find('.mgt2-cal-conv-val[data-cal="vilani"]').text(conv.vilani);
html.find('.mgt2-cal-conv-val[data-cal="zhodani"]').text(conv.zhodani);
html.find('.mgt2-cal-conv-val[data-cal="aslan"]').text(conv.aslan);
html.find('.mgt2-cal-conv-val[data-cal="kkree"]').text(conv.kkree);
html.find('.mgt2-cal-conv-val[data-cal="hiver"]').text(conv.hiver);
});
html.find('[data-action="day-inc"]').on('click', () => {
const input = html.find('[name="day"]');
let day = parseInt(input.val(), 10) || 1;
day = day >= 365 ? 1 : day + 1;
input.val(day);
html.find('.mgt2-cal-day-label').text(getDayLabel(day));
});
html.find('[data-action="hour-inc"]').on('click', () => {
const dayInput = html.find('[name="day"]');
const hourInput = html.find('[name="hour"]');
const minuteInput = html.find('[name="minute"]');
let day = parseInt(dayInput.val(), 10) || 1;
let hour = parseInt(hourInput.val(), 10) || 0;
let minute = parseInt(minuteInput.val(), 10) || 0;
hour += 1;
if (hour >= 24) {
hour = 0;
day = day >= 365 ? 1 : day + 1;
}
hourInput.val(hour);
dayInput.val(day);
html.find('.mgt2-cal-day-label').text(getDayLabel(day));
});
html.find('[data-action="apply"]').on('click', () => {
this._readAndApply(html);
});
}
_readAndApply(html) {
const year = parseInt(html.find('[name="year"]').val(), 10) || 1116;
const day = Math.min(365, Math.max(1, parseInt(html.find('[name="day"]').val(), 10) || 1));
const hour = Math.min(23, Math.max(0, parseInt(html.find('[name="hour"]').val(), 10) || 0));
const minute = Math.min(59, Math.max(0, parseInt(html.find('[name="minute"]').val(), 10) || 0));
const planet = html.find('[name="planet"]').val()?.trim() ?? '';
const data = { year, day, hour, minute, planet };
this._onApply?.(data);
}
close() {
this._onApply = null;
return super.close();
}
}
+59
View File
@@ -0,0 +1,59 @@
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
export class JournalNoteDialog extends HandlebarsApplicationMixin(ApplicationV2) {
static DEFAULT_OPTIONS = {
id: 'mgt2-journal-note',
classes: ['mgt2-calendar'],
position: { width: 320, height: 'auto' },
window: {
icon: 'fas fa-pen',
title: 'Note de bord',
resizable: false,
},
};
static PARTS = {
main: {
template: `modules/${MODULE_ID}/templates/journal-note-dialog.hbs`,
root: true,
},
};
constructor({ imperialDate, realDate, onSave } = {}) {
super();
this._imperialDate = imperialDate;
this._realDate = realDate;
this._onSave = onSave;
}
get title() {
return 'Note de bord';
}
async _prepareContext() {
return {
imperialDate: this._imperialDate,
realDate: this._realDate,
};
}
async _onRender(context, options) {
await super._onRender(context, options);
const html = $(this.element);
html.find('[data-action="save"]').on('click', async () => {
const content = html.find('[name="content"]').val()?.trim();
try {
await this._onSave?.(content);
} catch (err) {
console.error(`${MODULE_ID} | Erreur sauvegarde note:`, err);
}
});
}
close() {
this._onSave = null;
return super.close();
}
}
+105
View File
@@ -0,0 +1,105 @@
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
export function imperialToSolomani(impYear) {
return Math.round(impYear * 1.0006644 + 4521);
}
export function imperialToVilani(impYear) {
return Math.round((impYear + 4045) / 1.312);
}
export function imperialToZhodani(impYear) {
const raw = (impYear + 6731) / 2.26;
const olympiad = Math.floor(raw);
const frac = raw - olympiad;
const year = Math.min(3, Math.max(1, Math.round(frac * 3)));
return { olympiad, year, label: `${olympiad}.${year}` };
}
export function imperialToAslan(impYear) {
return Math.round((impYear + 2083) / 0.877);
}
export function imperialToKkree(impYear) {
return Math.round((impYear + 8145) / 1.2);
}
export function imperialToHiver(impYear) {
return Math.round((impYear - 410) * 2);
}
export function computeConversions(impYear) {
const y = impYear ?? 1116;
const z = imperialToZhodani(y);
return {
solomani: `${imperialToSolomani(y)} AD`,
vilani: `${imperialToVilani(y)} VI`,
zhodani: z.label,
aslan: `${imperialToAslan(y)}`,
kkree: `${imperialToKkree(y)}`,
hiver: `${imperialToHiver(y)} HF`,
};
}
export const DAY_NAMES = [
'Holiday',
'Wonday',
'Tuday',
'Thirday',
'Forday',
'Fiday',
'Sixday',
'Senday',
];
export const DAY_LABELS_FR = {
Holiday: 'Holiday',
Wonday: 'Wonday',
Tuday: 'Tuday',
Thirday: 'Thirday',
Forday: 'Forday',
Fiday: 'Fiday',
Sixday: 'Sixday',
Senday: 'Senday',
};
export function getDayLabel(day) {
if (day < 1 || day > 365) return '?';
if (day === 1) return DAY_NAMES[0];
return DAY_NAMES[((day - 2) % 7) + 1];
}
export function getWeekday(day) {
if (day < 1 || day > 365) return -1;
if (day === 1) return -1;
return (day - 2) % 7;
}
export function formatImperialDate({ year, day, hour, minute, planet } = {}) {
const y = year ?? 1116;
const d = day ?? 1;
const dayLabel = getDayLabel(d);
const dayStr = String(d).padStart(3, '0');
let label = `${dayLabel}, ${dayStr}-${y} IC`;
if (hour != null && minute != null) {
const h = String(Math.round(hour)).padStart(2, '0');
const m = String(Math.round(minute)).padStart(2, '0');
label += `${h}:${m}`;
if (planet) label += ` (${planet})`;
}
return label;
}
export function getDefaultCalendar() {
return { year: 1116, day: 1, hour: 12, minute: 0, planet: '' };
}
export function formatRealDate() {
const d = new Date();
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
const h = String(d.getHours()).padStart(2, '0');
const min = String(d.getMinutes()).padStart(2, '0');
return `${day}/${m}/${y} ${h}:${min}`;
}
+274
View File
@@ -0,0 +1,274 @@
import { CalendarApp } from './CalendarApp.js';
import { CalendarConfigDialog } from './CalendarConfigDialog.js';
import { JournalNoteDialog } from './JournalNoteDialog.js';
import { getDefaultCalendar, formatImperialDate, formatRealDate } from './calendarDate.js';
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
const ChatLogV2 = foundry.applications.sidebar.tabs.ChatLog;
let _calendarApp = null;
function readCalendar() {
return {
year: game.settings.get(MODULE_ID, 'calendarYear'),
day: game.settings.get(MODULE_ID, 'calendarDay'),
hour: game.settings.get(MODULE_ID, 'calendarHour'),
minute: game.settings.get(MODULE_ID, 'calendarMinute'),
planet: game.settings.get(MODULE_ID, 'calendarPlanet'),
};
}
async function writeCalendar(data) {
await game.settings.set(MODULE_ID, 'calendarYear', data.year);
await game.settings.set(MODULE_ID, 'calendarDay', data.day);
await game.settings.set(MODULE_ID, 'calendarHour', data.hour);
await game.settings.set(MODULE_ID, 'calendarMinute', data.minute);
await game.settings.set(MODULE_ID, 'calendarPlanet', data.planet);
}
function applyCalendar(data) {
if (_calendarApp) {
_calendarApp.updateDisplay(data);
}
}
async function broadcastCalendar(data) {
if (!game.socket?.emit) return;
game.socket.emit(`module.${MODULE_ID}`, {
_type: 'calendarSync',
...data,
});
}
function openCalendarApp() {
if (_calendarApp) {
_calendarApp.bringToTop();
return;
}
const data = readCalendar();
_calendarApp = new CalendarApp({
onConfig: () => openCalendarConfig(),
onNote: () => openJournalNote(),
onClose: () => { _calendarApp = null; },
});
_calendarApp.updateDisplay(data);
_calendarApp.render({ force: true });
}
function openCalendarConfig() {
const data = readCalendar();
const dialog = new CalendarConfigDialog({
data,
onApply: async (newData) => {
await writeCalendar(newData);
applyCalendar(newData);
broadcastCalendar(newData);
dialog.close();
},
});
dialog.render({ force: true });
}
async function appendJournalNote(content, { dateLabel, realLabel } = {}) {
if (!content) return false;
const journalName = game.settings.get(MODULE_ID, 'calendarJournalName') || 'Journal de bord';
let journal = game.journal.getName(journalName);
if (!journal) {
journal = await JournalEntry.create({ name: journalName });
if (!journal) {
ui.notifications.error('Impossible de créer le journal');
return false;
}
}
if (!dateLabel || !realLabel) {
const c = readCalendar();
dateLabel = formatImperialDate(c);
realLabel = formatRealDate();
}
const safeContent = $('<div>').text(content).html().replace(/\n/g, '<br>');
const noteHtml = `<hr>
<h3>${realLabel}${dateLabel}</h3>
<p>${safeContent}</p>`;
let page = journal.pages.contents[0];
if (!page) {
[page] = await journal.createEmbeddedDocuments('JournalEntryPage', [{ name: 'Notes', text: { content: '' } }]);
}
if (!page) {
ui.notifications.error('Impossible de créer une page dans le journal');
return false;
}
const existing = page.text?.content || '';
await page.update({ 'text.content': existing + '\n' + noteHtml });
ui.notifications.info(`Note ajoutée au journal « ${journalName} »`);
return true;
}
function openJournalNote() {
const calendar = readCalendar();
const dateLabel = formatImperialDate(calendar);
const realLabel = formatRealDate();
const dialog = new JournalNoteDialog({
imperialDate: dateLabel,
realDate: realLabel,
onSave: async (content) => {
const ok = await appendJournalNote(content, { dateLabel, realLabel });
if (ok) dialog.close();
},
});
dialog.render({ force: true });
}
function registerCalCommand() {
if (!ChatLogV2?.CHAT_COMMANDS) return;
ChatLogV2.CHAT_COMMANDS.cal = {
rgx: /^\/cal(?:\s+(.*))?$/i,
fn: () => {
openCalendarApp();
return false;
},
};
console.log(`${MODULE_ID} | Commande /cal enregistrée via ChatLog.CHAT_COMMANDS`);
}
Hooks.once('init', () => {
const def = getDefaultCalendar();
game.settings.register(MODULE_ID, 'calendarYear', {
name: 'Année impériale',
scope: 'world',
config: false,
type: Number,
default: def.year,
});
game.settings.register(MODULE_ID, 'calendarDay', {
name: 'Jour impérial (1-365)',
scope: 'world',
config: false,
type: Number,
default: def.day,
});
game.settings.register(MODULE_ID, 'calendarHour', {
name: 'Heure locale',
scope: 'world',
config: false,
type: Number,
default: def.hour,
});
game.settings.register(MODULE_ID, 'calendarMinute', {
name: 'Minute locale',
scope: 'world',
config: false,
type: Number,
default: def.minute,
});
game.settings.register(MODULE_ID, 'calendarPlanet', {
name: 'Planète',
scope: 'world',
config: false,
type: String,
default: def.planet,
});
game.settings.register(MODULE_ID, 'calendarAutoOpen', {
name: 'Calendrier impérial : auto-ouverture',
hint: 'Ouvre automatiquement la fenêtre du calendrier au démarrage',
scope: 'world',
config: true,
type: Boolean,
default: true,
});
game.settings.register(MODULE_ID, 'calendarJournalName', {
name: 'Journal de bord',
hint: 'Nom du journal utilisé pour les notes de session. Créé automatiquement s\'il n\'existe pas.',
scope: 'world',
config: true,
type: String,
default: 'Journal de bord',
});
game.settings.register(MODULE_ID, 'calendarPosition', {
scope: 'client',
config: false,
type: Object,
default: {},
});
const loadTemplatesFn = foundry.applications?.handlebars?.loadTemplates || loadTemplates;
if (loadTemplatesFn) {
loadTemplatesFn([
`modules/${MODULE_ID}/templates/calendar-app.hbs`,
`modules/${MODULE_ID}/templates/calendar-config.hbs`,
`modules/${MODULE_ID}/templates/journal-note-dialog.hbs`,
]);
}
registerCalCommand();
console.log(`${MODULE_ID} | Calendrier impérial initialisé`);
});
Hooks.once('ready', () => {
game.socket.on(`module.${MODULE_ID}`, (data) => {
if (game.user?.isGM) return;
if (data?._type !== 'calendarSync') return;
if (!_calendarApp) {
const { year, day, hour, minute, planet } = data;
_calendarApp = new CalendarApp({
onClose: () => { _calendarApp = null; },
});
_calendarApp.updateDisplay({ year, day, hour, minute, planet });
_calendarApp.render({ force: true });
return;
}
_calendarApp.updateDisplay(data);
});
if (game.settings.get(MODULE_ID, 'calendarAutoOpen')) {
openCalendarApp();
}
});
Hooks.on('preCreateChatMessage', (message, data, options) => {
const content = message.content?.trim()?.toLowerCase();
if (content === '/cal' || content?.startsWith('/cal ')) {
openCalendarApp();
return false;
}
});
Hooks.on('chatMessage', (...args) => {
let message;
if (args[0]?.content !== undefined) {
message = args[0].content;
} else if (typeof args[1] === 'string') {
message = args[1];
} else {
return;
}
const trimmed = message?.trim()?.toLowerCase();
if (trimmed === '/cal' || trimmed?.startsWith('/cal ')) {
openCalendarApp();
return false;
}
});
Hooks.on('renderChatInput', (app, html, data) => {
let input;
if (html?.element) {
input = $(html.element).find('textarea[name="content"]');
} else if (html?.find) {
input = html.find('textarea[name="content"]');
} else {
input = $(html).find('textarea[name="content"]');
}
if (input.data('mgt2-cal-listener')) return;
input.data('mgt2-cal-listener', true);
input.on('keydown', (event) => {
if (event.key === 'Enter' && !event.shiftKey) {
const content = input.val()?.trim();
if (content === '/cal' || content?.startsWith('/cal ')) {
event.preventDefault();
event.stopImmediatePropagation();
openCalendarApp();
input.val('');
}
}
});
});
+1 -1
View File
@@ -12,7 +12,7 @@ function buildStartupNoticeHtml() {
<div style="padding:6px 8px;border-left:4px solid #c9a227;background:#f5f0e8;color:#2c2c3e;line-height:1.45;"> <div style="padding:6px 8px;border-left:4px solid #c9a227;background:#f5f0e8;color:#2c2c3e;line-height:1.45;">
<strong>MgT2e outils</strong> <strong>MgT2e outils</strong>
<span style="color:#6a5422;">·</span> <span style="color:#6a5422;">·</span>
<code>/commerce</code> <code>/pnj</code> <code>/rencontre</code> <code>/mission</code> <code>/sector</code> <code>/cal</code> <code>/commerce</code> <code>/pnj</code> <code>/rencontre</code> <code>/mission</code> <code>/sector</code>
<div style="margin-top:2px;font-size:0.92em;color:#6a5422;"> <div style="margin-top:2px;font-size:0.92em;color:#6a5422;">
par <a href="https://www.uberwald.me" target="_blank" rel="noopener noreferrer">LeRatierBretonnien / Uberwald</a> par <a href="https://www.uberwald.me" target="_blank" rel="noopener noreferrer">LeRatierBretonnien / Uberwald</a>
</div> </div>
+274
View File
@@ -1162,3 +1162,277 @@ a.mgt2-world-link:hover {
color: #555; color: #555;
margin-top: 4px; margin-top: 4px;
} }
/* === Calendrier Impérial =================================================== */
.mgt2-calendar .window-header {
background: linear-gradient(180deg, rgba(44, 44, 62, 0.96) 0%, rgba(30, 30, 43, 0.96) 100%);
border-bottom: 1px solid #c9a227;
}
.mgt2-calendar .window-title {
color: #d9b24c;
text-shadow: none;
}
.mgt2-calendar .window-content {
padding: 4px 8px;
background: #1a1a2e;
overflow: hidden;
}
.mgt2-cal-window {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-height: 28px;
}
.mgt2-cal-display {
flex: 1;
}
.mgt2-cal-actions {
display: flex;
flex-direction: row;
align-items: center;
gap: 2px;
flex: 0 0 auto;
}
.mgt2-cal-date {
color: #d8c79a;
font-size: 0.95em;
font-family: 'Roboto', sans-serif;
white-space: nowrap;
}
.mgt2-cal-config-btn {
flex: 0 0 auto;
width: 22px;
height: 22px;
padding: 0;
border: none;
background: transparent;
color: #8a7a5a;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.85em;
border-radius: 3px;
transition: color 0.15s, background 0.15s;
}
.mgt2-cal-config-btn:hover {
color: #d9b24c;
background: rgba(201, 162, 39, 0.15);
}
/* Config dialog */
.mgt2-cal-config {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px;
background: #1a1a2e;
color: #d8c79a;
}
.mgt2-cal-config-row {
display: flex;
align-items: center;
gap: 8px;
}
.mgt2-cal-config-row label {
flex: 0 0 80px;
font-size: 0.85em;
color: #b8a87a;
}
.mgt2-cal-config-row input[type="number"],
.mgt2-cal-config-row input[type="text"] {
flex: 1;
padding: 3px 6px;
border: 1px solid #3a3a4e;
border-radius: 3px;
background: #252540;
color: #d8c79a;
font-size: 0.85em;
}
.mgt2-cal-config-row input:focus {
outline: none;
border-color: #c9a227;
}
.mgt2-cal-day-group {
flex: 1;
display: flex;
align-items: center;
gap: 6px;
}
.mgt2-cal-day-group input {
flex: 0 0 60px;
}
.mgt2-cal-day-label {
font-size: 0.85em;
color: #d9b24c;
white-space: nowrap;
}
.mgt2-cal-config-actions {
display: flex;
gap: 6px;
justify-content: flex-end;
margin-top: 4px;
}
.mgt2-cal-btn {
padding: 4px 10px;
border: 1px solid #3a3a4e;
border-radius: 3px;
background: #252540;
color: #d8c79a;
font-size: 0.82em;
cursor: pointer;
transition: background 0.15s, border-color 0.15s;
}
.mgt2-cal-btn:hover {
background: #303050;
border-color: #c9a227;
}
.mgt2-cal-btn-primary {
background: linear-gradient(180deg, #c9a227 0%, #a8881e 100%);
color: #1a1a2e;
border-color: #c9a227;
font-weight: 600;
}
.mgt2-cal-btn-primary:hover {
background: linear-gradient(180deg, #d9b24c 0%, #c9a227 100%);
}
.mgt2-cal-conversions {
margin-top: 8px;
border: 1px solid #3a3a4e;
border-radius: 3px;
background: #1e1e32;
}
.mgt2-cal-conversions summary {
padding: 4px 8px;
color: #b8a87a;
font-size: 0.82em;
cursor: pointer;
user-select: none;
}
.mgt2-cal-conversions summary:hover {
color: #d9b24c;
}
.mgt2-cal-conv-note {
font-size: 0.85em;
color: #6a6a7e;
font-style: italic;
}
.mgt2-cal-conv-row {
display: flex;
justify-content: space-between;
padding: 2px 8px;
font-size: 0.82em;
color: #d8c79a;
}
.mgt2-cal-conv-row:nth-child(even) {
background: rgba(255,255,255,0.03);
}
.mgt2-cal-conv-label {
color: #8a7a5a;
}
/* Note button on calendar app */
.mgt2-cal-note-btn {
flex: 0 0 auto;
width: 22px;
height: 22px;
padding: 0;
border: none;
background: transparent;
color: #8a7a5a;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.85em;
border-radius: 3px;
transition: color 0.15s, background 0.15s;
}
.mgt2-cal-note-btn:hover {
color: #d9b24c;
background: rgba(201, 162, 39, 0.15);
}
/* Note dialog */
.mgt2-note-form {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px;
background: #1a1a2e;
color: #d8c79a;
}
.mgt2-note-row {
display: flex;
flex-direction: column;
gap: 2px;
}
.mgt2-note-row label {
font-size: 0.8em;
color: #8a7a5a;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.mgt2-note-value {
font-size: 0.9em;
color: #d8c79a;
}
.mgt2-note-row textarea {
width: 100%;
padding: 6px;
border: 1px solid #3a3a4e;
border-radius: 3px;
background: #252540;
color: #d8c79a;
font-size: 0.85em;
font-family: inherit;
resize: vertical;
}
.mgt2-note-row textarea:focus {
outline: none;
border-color: #c9a227;
}
.mgt2-note-actions {
display: flex;
justify-content: flex-end;
margin-top: 4px;
}
+15
View File
@@ -0,0 +1,15 @@
<div class="mgt2-cal-window">
<div class="mgt2-cal-display">
<span class="mgt2-cal-date">{{dateLabel}}</span>
</div>
{{#if isGM}}
<div class="mgt2-cal-actions">
<button type="button" class="mgt2-cal-note-btn" title="Ajouter une note de bord">
<i class="fas fa-pen"></i>
</button>
<button type="button" class="mgt2-cal-config-btn" title="Configurer le calendrier">
<i class="fas fa-cog"></i>
</button>
</div>
{{/if}}
</div>
+39
View File
@@ -0,0 +1,39 @@
<form class="mgt2-cal-config">
<div class="mgt2-cal-config-row">
<label for="cal-year">Année</label>
<input type="number" id="cal-year" name="year" value="{{year}}" min="0" max="9999">
</div>
<div class="mgt2-cal-config-row">
<label for="cal-day">Jour</label>
<div class="mgt2-cal-day-group">
<input type="number" id="cal-day" name="day" value="{{day}}" min="1" max="365">
<span class="mgt2-cal-day-label">{{dayLabel}}</span>
</div>
</div>
<div class="mgt2-cal-config-row">
<label for="cal-hour">Heure</label>
<input type="number" id="cal-hour" name="hour" value="{{hour}}" min="0" max="23">
</div>
<div class="mgt2-cal-config-row">
<label for="cal-minute">Minute</label>
<input type="number" id="cal-minute" name="minute" value="{{minute}}" min="0" max="59">
</div>
<div class="mgt2-cal-config-row">
<label for="cal-planet">Planète</label>
<input type="text" id="cal-planet" name="planet" value="{{planet}}" placeholder="p. ex. Terra">
</div>
<div class="mgt2-cal-config-actions">
<button type="button" class="mgt2-cal-btn" data-action="day-inc"><i class="fas fa-plus"></i> +1 jour</button>
<button type="button" class="mgt2-cal-btn" data-action="hour-inc"><i class="fas fa-plus"></i> +1 heure</button>
<button type="button" class="mgt2-cal-btn mgt2-cal-btn-primary" data-action="apply">Appliquer</button>
</div>
<details class="mgt2-cal-conversions">
<summary>Conversions calendaires <span class="mgt2-cal-conv-note">(approximatif)</span></summary>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">Solomani</span><span class="mgt2-cal-conv-val" data-cal="solomani">{{conversions.solomani}}</span></div>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">Vilani</span><span class="mgt2-cal-conv-val" data-cal="vilani">{{conversions.vilani}}</span></div>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">Zhodani</span><span class="mgt2-cal-conv-val" data-cal="zhodani">{{conversions.zhodani}}</span></div>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">Aslan</span><span class="mgt2-cal-conv-val" data-cal="aslan">{{conversions.aslan}}</span></div>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">K'Kree</span><span class="mgt2-cal-conv-val" data-cal="kkree">{{conversions.kkree}}</span></div>
<div class="mgt2-cal-conv-row"><span class="mgt2-cal-conv-label">Hiver</span><span class="mgt2-cal-conv-val" data-cal="hiver">{{conversions.hiver}}</span></div>
</details>
</form>
+19
View File
@@ -0,0 +1,19 @@
<form class="mgt2-note-form">
<div class="mgt2-note-row">
<label>Date impériale</label>
<span class="mgt2-note-value">{{imperialDate}}</span>
</div>
<div class="mgt2-note-row">
<label>Date réelle</label>
<span class="mgt2-note-value">{{realDate}}</span>
</div>
<div class="mgt2-note-row">
<label for="note-content">Note</label>
<textarea id="note-content" name="content" rows="6" placeholder="Saisissez votre note…" autofocus></textarea>
</div>
<div class="mgt2-note-actions">
<button type="button" class="mgt2-cal-btn mgt2-cal-btn-primary" data-action="save">
<i class="fas fa-save"></i> Enregistrer
</button>
</div>
</form>