Compare commits

..

13 Commits

Author SHA1 Message Date
c8119601d8 Enhance robustness 2026-01-05 17:44:31 +01:00
d1da169fa3 Enhance robustness 2026-01-05 17:24:01 +01:00
07928acb48 Ajout Aux Armes 2025-11-12 22:26:13 +01:00
9860535f5f Ajotu Aux Armes 2025-11-12 22:24:58 +01:00
fc560ddee7 Align with v9.3.0 2025-10-31 18:05:03 +00:00
47454b30f1 Align with v9.3.0 2025-10-31 18:04:13 +00:00
4ee45273b3 COrrection sur Natation - again 2025-10-13 20:59:50 +02:00
94ca8cb6ea Align to v9.2.X 2025-09-23 16:44:41 +02:00
6af8d03d22 Fix natation/swim 2025-07-25 15:03:04 +02:00
7afcadfb6f Fix natation/swim 2025-07-25 10:51:41 +02:00
5801a5270f Fix translated talents ... 2025-07-20 10:17:55 +02:00
f8908617a1 Fix translated talents ... 2025-07-20 10:17:37 +02:00
4b36c52bb1 Enhance auto-translation 2025-06-04 20:00:36 +02:00
55 changed files with 560 additions and 504 deletions

View File

@@ -2841,6 +2841,12 @@
"name": "Combattant au contact",
"tests": "Corps à corps quand vous combattez au contact ou que vous allez au contact"
},
{
"description": "<p>Vous êtes entraîné à vous placer très près dun adversaire. Vous ne subissez aucune pénalité pour vous battre contre un adversaire avec une arme plus longue que la vôtre. De plus, si vous utilisez les règles optionnelles de Combat au contact (voir page 297), gagnez un bonus de +10 pour toucher votre adversaire.</p>",
"id": "Infighter",
"name": "Combattant au contact",
"tests": "Corps à corps quand vous combattez au contact ou que vous allez au contact"
},
{
"description": "<p>Vos appels exaltants peuvent renverser le cours d'une bataille. Référez-vous au tableau suivant pour voir combien de personnes vous pouvez à présent influencer avec votre Compétence @Compendium[wfrp4e-core.items.oMaJZ5cvCJeOUq9H] lors d'une guerre.</p>\n<p>&nbsp;</p>\n<div>\n<table title=\"\" border=\"1\" summary=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<p>Talent pris</p>\n</td>\n<td>\n<p>Nombre de soldats influencés</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>1</p>\n</td>\n<td>\n<p>Normal × 5</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>2</p>\n</td>\n<td>\n<p>Normal × 10</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>3</p>\n</td>\n<td>\n<p>&nbsp;Normal × 20</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>4</p>\n</td>\n<td>\n<p>&nbsp;Normal × 50</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>5</p>\n</td>\n<td>\n<p>&nbsp;Normal × 100</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>6</p>\n</td>\n<td>\n<p>&nbsp;Normal × 200</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>7</p>\n</td>\n<td>\n<p>&nbsp;Normal × 500</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>8</p>\n</td>\n<td>\n<p>&nbsp;Normal × 1000</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>9</p>\n</td>\n<td>\n<p>&nbsp;Tous ceux qui peuvent entendre votre voix inspirante</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Exemple</strong> : <em>Le monastère de labbesse Brigitte van der Hoogenband est pris dassaut par les peaux-vertes, et les choses vont mal. De fait, elle décide de renforcer lesprit de ses soldats avec un Test de Commandement, leur octroyant +10 à tous les Tests de Psychologie. Elle obtient 3 DR à son Test de Commandement. Étant donné quelle possède un Bonus de Sociabilité de 6, et quelle peut influencer un nombre de soldats, égal à son Bonus de Sociabilité + DR en utilisant Commandement, elle renforce 9 soldats. Cependant, comme elle possède Exaltant 3, ce nombre est multiplié par 20, ce qui signifie que 180 de ses soldats sont inspirés par ses cris dencouragement « MAINTENEZ LES RANGS ! »</em>",
"id": "WCXnFSV4WOSmzzc4",
@@ -5985,6 +5991,11 @@
"id": "Lore (Tilea)",
"name": "Savoir (Tilée)"
},
{
"description": "<p>Posséder une Compétence Savoir signifie que vous avez officiellement étudié, ou avez appris dune façon ou dune autre, une branche de connaissances avancées. Vous possédez des données approfondies dans une spécialisation et navez donc pas besoin deffectuer de Test pour que le MJ vous donne les éléments dinformation utiles. Si vous recherchez des informations spécifiques moins connues, vous aurez besoin deffectuer un Test de Savoir, modifié selon la nature obscure de linformation, où les DR indiqueront de combien de détails vous vous souvenez.<p>En combat, un Test de Savoir réussi peut éventuellement vous accorder +1 Avantage (avec laccord de votre MJ). Par exemple, Savoir (Géologie) peut vous donner un Avantage si vous combattez dans une caverne, ou Savoir (Ingénierie) peut vous aider si vous combattez un ennemi armé dun appareil mécanique complexe. Vous pouvez continuer à renforcer votre Avantage lors des tours ultérieurs, à condition que les circonstances le permettent (déterminé par le MJ) et que vous ne soyez pas interrompu ; de cette façon, vous pouvez gagner un maximum dAvantages, égal à votre Bonus dIntelligence.</p>",
"id": "Lore (Law)",
"name": "Savoir (Loi)"
},
{
"description": "<p>La Compétence Corps à corps représente l'entraînement spécifique que vous avez reçu avec un seul type d'armes de combat rapproché. Chaque Spécialisation de Corps à corps indique un entraînement à une classe d'arme spécifique. Si vous n'avez pas la Spécialisation appropriée pour une arme que vous souhaitez utiliser, référez-vous au <strong>Chapitre 11 : Guide de l'équipement </strong>pour consulter les statistiques de l'arme et savoir quelles pénalités vous subirez. Voir <strong>Chapitre 5 : Règles </strong>pour plus d'informations sur les combats et l'utilisation de la Compétence Corps à corps.<p><strong>Exemples de Spécialisations : </strong>Arme d'hast, Arme à deux mains, Bagarre, Base, Cavalerie, Escrime, Fléau, Parade.</p>",
"id": "Melee",

File diff suppressed because it is too large Load Diff

15
fr.json
View File

@@ -314,6 +314,10 @@
"SHEET.NPCSheetNoTheme":"Fiche de PNJ (sans thème)",
"SHEET.VehicleSheet":"Fiche de véhicule",
"SHEET.VehicleSheetNoTheme":"Fiche de véhicule (sans thème)",
"SHEET.Append":"Ajouter après",
"SHEET.Prepend":"Ajouter avant",
"SHEET.SkillName":"Nom de la compétence",
"SHEET.TalentName":"Nom du Talent",
"SHEETS.Actor.vehicle":"Fiche de Véhicule",
"SHEETS.Item.ammunition":"Fiche de Munitions",
@@ -429,6 +433,7 @@
"ITEM.Roles":"Roles",
"ITEM.VitalRoles":"Roles vitaux",
"ITEM.LearningXP":"XP d'Apprentissage",
"ITEM.Custom":"Personnalisé",
"TOKEN.MOVEMENT.Status.immobile":"Immobile",
"TOKEN.MOVEMENT.Status.restricted":"Restreint",
@@ -645,6 +650,7 @@
"Hide": "Cacher",
"Targets": "Cibles",
"Melee": "Corps à corps",
"Swim":" Natation",
"Cost": "Prix",
"Length": "Longueur",
"Cargo": "Cargaison",
@@ -737,7 +743,6 @@
"Stat Block Parser":"Parser de fiches de PNJ",
"Submit":"Soumettre",
"SuccessLevels":"DR",
"Swim":"Nager",
"TBRed":"BE",
"TookDamage":"Encaisse {damage} dommages",
"ToughnessDesc":"Endurance",
@@ -1020,6 +1025,7 @@
"DIALOG.LinkCareerContent":"Relier {new} avec {old}? Les compétences de {old} seront ajoutées à {new}, tout en préservant toutes les spécialisations effectuées avec la carrière précédente.",
"DIALOG.ChoosePassenger":"Choisissez un passager",
"DIALOG.PostQuantityContent":"Combien de fois cet item peut être récupéré? Laissez vide pour illimité.",
"DIALOG.ChooseArmour":"Choisissez une armure à endommager",
"CHAT.CareerChoose" : "Choisissez votre carrière",
"CHAT.DamageError" : "Erreur de calcul des dégâts:",
@@ -1184,6 +1190,8 @@
"CHAT.Vital":"Vital",
"CHAT.DiseaseRollError":"Une erreur s'est produite lors du jet d'incubation ou de durée de la maladie.",
"CHAT.ExpReceivedNoReason":"Vous avez reçu <b>{amount}</b> points d'expérience",
"CHAT.CriticalDeflection":"Déviation de Critique",
"CHAT.DamageToArmour":"1 Dommages appliqués à {item} ({type})",
"Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
@@ -2696,6 +2704,10 @@
"major":"Majeur",
"minor":"Mineur",
"moderate":"Modéré",
"DurationPlaceholder":"Texte concernant a durée",
"ErrorArmourDamagePermission":"Vous n'avez pas les droits pour endommager l'armure de cet acteur.",
"IncubationPlaceholder":"Texte concernant l'incubation",
"Required Trappings":"Equipement requis",
"WH":{
"TransferType":{
@@ -2716,5 +2728,6 @@
"SHEET.ExperienceLog":"Journal d'Expérince",
"SHEET.Attacker":"Attaquant",
"SHEET.Randomize":"Aléatoire",
"SHEET.RequiredTrappingsError":"Impossible de lancer les revenus sans avoir tous les équipements requis dans cette carrière !",
"Sheet.RollIncome":"Revenu"
}

View File

@@ -8,7 +8,7 @@
}
],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"version": "9.1.2",
"version": "9.3.3",
"esmodules": [
"modules/babele-register.js",
"modules/addon-register.js",
@@ -119,7 +119,7 @@
}
],
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-1-2.zip",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-2.zip",
"id": "wh4-fr-translation",
"compatibility": {
"minimum": "13",

View File

@@ -421,7 +421,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("trait")
for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
if (trait_fr?.name ) {
if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || trait_en.name
trait_en.name = nbt + trait_fr.name + special;
trait_en.system.description.value = trait_fr.system.description.value;
@@ -442,7 +442,8 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill")
for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
if (trait_fr?.name) {
//console.log(">>>>> Skill FR ?", trait_fr, name_en, special)
if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special;
trait_en.system.description.value = trait_fr.system.description.value;
@@ -453,7 +454,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("prayer")
for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
if (trait_fr?.name) {
if (trait_fr?.name && trait_fr?.name != name_en) {
WFRP4FrTranslation.parseSpellContent(trait_en)
trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special;
@@ -467,7 +468,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("spell")
for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
if (trait_fr?.name) {
if (trait_fr?.name && trait_fr?.name != name_en) {
WFRP4FrTranslation.parseSpellContent(trait_en)
trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special;
@@ -494,7 +495,7 @@ Hooks.once('init', () => {
}
trait_en.name = name_en // Reset the name to the original one
let trait_fr = game.babele.translate(compData.metadata.id, trait_en, true)
if (trait_fr?.name) {
if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || name_en // Security since babele v10
//console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name);
if (trait_fr.name && (trait_fr.name == "Sprinter" || trait_fr.name != name_en)) { // Talent translated!
@@ -513,7 +514,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career")
for (let compData of validCompendiums) {
let career_fr = game.babele.translate(compData.metadata.id, trait_en, true);
if (career_fr?.name) {
if (career_fr?.name && career_fr?.name != name_en) {
trait_en.name = career_fr.name || trait_en.name
// DEBG: console.log(">>>>> Career ?", career_fr.name );
trait_en.system = foundry.utils.duplicate(career_fr.system);
@@ -524,7 +525,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("vehicleRole")
for (let compData of validCompendiums) {
let role_fr = game.babele.translate(compData.metadata.id, trait_en, true);
if (role_fr?.name) {
if (role_fr?.name && role_fr?.name != name_en) {
trait_en.name = role_fr.name || trait_en.name
// DEBG: console.log(">>>>> Role ?", role_fr.name );
trait_en.system = foundry.utils.duplicate(role_fr.system);
@@ -535,7 +536,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag(["trapping"], ["weapon", "armour", "container", "money"])
for (let compData of validCompendiums) {
let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true);
if (trapping_fr?.name) {
if (trapping_fr?.name && trapping_fr?.name != name_en) {
trait_en.name = trapping_fr.name || trait_en.name
if (trapping_fr.system?.description?.value) {
trait_en.system.description.value = trapping_fr.system.description.value

View File

@@ -2,51 +2,72 @@
export class WH4FRPatchConfig {
/************************************************************************************/
static translateSkillList( skillList) {
static translateSkillList(skillList) {
if (!skillList || skillList.length == 0) {
return skillList;
}
let compendiumName = 'wfrp4e-core.items'
let newList = [];
for( let compName of skillList) {
for (let compName of skillList) {
if (!compName) {
newList.push(compName);
continue;
}
if (!isNaN(compName)) { // If numeric, keep as is (for skill levels)
newList.push(compName);
continue;
}
// Trim compName
compName = compName.trim();
let special = "";
let newName = compName;
if ( compName.includes("(") && compName.includes(")") ) { // Then process specific skills name with (xxxx) inside
let re = /(.*) +\((.*)\)/i;
let res = re.exec( compName );
let baseName = compName
if (compName.includes("(") && compName.includes(")")) { // Then process specific skills name with (xxxx) inside
let re = /(.*) +\((.*)\)/i;
let res = re.exec(compName);
compName = res[1].trim(); // Get the root skill name
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
}
let compNameFR = game.babele.translate( compendiumName, { name: compName }, true );
let compNameFR = game.babele.translate(compendiumName, { name: compName }, true);
if (compNameFR.name != compName) { // Translation OK
newName = compNameFR.name + special;
}
// DEBUG console.log("Translating skill ", compName, baseName, " to ", newName, special);
if (!newName || newName == "" || newName === undefined || newName === "undefined") { // If no translation, keep the original name
newName = baseName; // If no translation, keep the original name
}
newList.push(newName);
}
return newList;
}
/************************************************************************************/
static translateTalentList( talentList) {
static translateTalentList(talentList) {
if (!talentList || talentList.length == 0) {
return talentList;
}
let compendiumName = 'wfrp4e-core.items'
let newList = [];
for( let talentLine of talentList) {
for (let talentLine of talentList) {
let special = "";
let newName = talentLine;
if ( isNaN(talentLine) ) {
if (isNaN(talentLine)) {
let subList = talentLine.split(',');
let newSubList = [];
for (let talentName of subList ) {
for (let talentName of subList) {
talentName = talentName.trim();
let newName2 = talentName;
if ( talentName.includes("(") && talentName.includes(")") ) { // Then process specific skills name with (xxxx) inside
let re = /(.*) +\((.*)\)/i;
let res = re.exec( talentName );
if (talentName.includes("(") && talentName.includes(")")) { // Then process specific skills name with (xxxx) inside
let re = /(.*) +\((.*)\)/i;
let res = re.exec(talentName);
talentName = res[1].trim(); // Get the root skill name
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
}
let talentNameFR = game.babele.translate( compendiumName, { name: talentName }, true );
let talentNameFR = game.babele.translate(compendiumName, { name: talentName }, true);
if (talentNameFR.name != talentName) { // Translation OK
newName2 = talentNameFR.name + special;
}
@@ -60,15 +81,18 @@ export class WH4FRPatchConfig {
}
/************************************************************************************/
static patch_subspecies( ) {
for ( let speciesName in game.wfrp4e.config.subspecies) {
static patch_subspecies() {
if (!game.wfrp4e?.config?.subspecies) {
return
}
for (let speciesName in game.wfrp4e.config.subspecies) {
let subspeciesList = game.wfrp4e.config.subspecies[speciesName];
for ( let subspeciesName in subspeciesList) {
for (let subspeciesName in subspeciesList) {
let subspecies = subspeciesList[subspeciesName];
if ( subspecies.skills) {
if (subspecies.skills) {
subspecies.skills = this.translateSkillList(subspecies.skills);
}
if ( subspecies.talents) {
if (subspecies.talents) {
subspecies.talents = this.translateTalentList(subspecies.talents);
}
}
@@ -76,20 +100,26 @@ export class WH4FRPatchConfig {
}
/************************************************************************************/
static patch_species_skills( ) {
static patch_species_skills() {
if (!game.wfrp4e?.config?.speciesSkills) {
return
}
console.log("Patching species skills....");
for (let speciesName in game.wfrp4e.config.speciesSkills) {
let speciesComp = game.wfrp4e.config.speciesSkills[speciesName];
console.log("SpeciesName", speciesName, speciesComp);
game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList( speciesComp )
game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList(speciesComp)
}
}
/************************************************************************************/
static patch_species_talents( ) {
static patch_species_talents() {
if (!game.wfrp4e?.config?.speciesTalents) {
return
}
for (let speciesName in game.wfrp4e.config.speciesTalents) {
let speciesTalents = game.wfrp4e.config.speciesTalents[speciesName];
game.wfrp4e.config.speciesTalents[speciesName] = this.translateTalentList( speciesTalents);
game.wfrp4e.config.speciesTalents[speciesName] = this.translateTalentList(speciesTalents);
}
}
@@ -97,16 +127,16 @@ export class WH4FRPatchConfig {
static patch_career() {
let compendiumName = 'wfrp4e-core.items'
if ( game.wfrp4e.tables.career) {
for( let row of game.wfrp4e.tables.career.rows) {
for ( let key in row) {
if (game.wfrp4e?.tables?.career) {
for (let row of game.wfrp4e.tables.career.rows) {
for (let key in row) {
if (key != "range") {
if ( row[key].name == 'Slayer' ) {
if (row[key].name == 'Slayer') {
row[key].name = "Tueur Nains";
} else if ( row[key].name == 'Duelist' ) {
} else if (row[key].name == 'Duelist') {
row[key].name = "Duelliste";
} else {
let career_fr = game.babele.translate( compendiumName, {name: row[key].name}, true );
let career_fr = game.babele.translate(compendiumName, { name: row[key].name }, true);
row[key].name = career_fr.name;
}
}
@@ -118,12 +148,15 @@ export class WH4FRPatchConfig {
/************************************************************************************/
static fixSpeciesTable() {
let speciesTable = game.wfrp4e.tables.findTable("species");
let speciesTable = game.wfrp4e?.tables?.findTable("species");
if (!speciesTable?.results) {
return
}
let newResults = foundry.utils.duplicate(speciesTable.results);
for (let result of newResults) {
result.name = game.i18n.localize(result.name);
}
speciesTable.update({results: newResults } )
speciesTable.update({ results: newResults })
console.log("Species table patched to use 'Humain' instead of 'Human'", speciesTable);
}
@@ -139,7 +172,7 @@ export class WH4FRPatchConfig {
}
// Detect and patch as necessary
if (game.wfrp4e.config?.talentBonuses ) {
if (game.wfrp4e.config?.talentBonuses) {
this.fixSpeciesTable() // Force 'name' field replacement
@@ -181,22 +214,22 @@ export class WH4FRPatchConfig {
if (game.wfrp4e.config.characteristicsBonus) {
game.wfrp4e.config.characteristicsBonus =
{
"ws": "Bonus de Capacité de Combat",
"bs": "Bonus de Capacité de Tir",
"s": "Bonus de Force",
"t": "Bonus d'Endurance",
"i": "Bonus d'Initiative",
"ag": "Bonus d'Agilité",
"dex": "Bonus de Dexterité",
"int": "Bonus d'Intelligence",
"wp": "Bonus de Force Mentale",
"fel": "Bonus de Sociabilité"
{
"ws": "Bonus de Capacité de Combat",
"bs": "Bonus de Capacité de Tir",
"s": "Bonus de Force",
"t": "Bonus d'Endurance",
"i": "Bonus d'Initiative",
"ag": "Bonus d'Agilité",
"dex": "Bonus de Dexterité",
"int": "Bonus d'Intelligence",
"wp": "Bonus de Force Mentale",
"fel": "Bonus de Sociabilité"
}
}
if (game.wfrp4e.config.classTrappings) {
for(const c of Object.keys(game.wfrp4e.config.classTrappings)) {
for (const c of Object.keys(game.wfrp4e.config.classTrappings)) {
game.wfrp4e.config.classTrappings[game.i18n.localize(c)] = game.wfrp4e.config.classTrappings[c];
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
MANIFEST-001134
MANIFEST-001231

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.444091 7ff2609fa6c0 Recovering log #1132
2025/06/04-17:19:09.455068 7ff2609fa6c0 Delete type=3 #1130
2025/06/04-17:19:09.455138 7ff2609fa6c0 Delete type=0 #1132
2025/06/04-17:45:04.305164 7ff25a3ff6c0 Level-0 table #1137: started
2025/06/04-17:45:04.305197 7ff25a3ff6c0 Level-0 table #1137: 0 bytes OK
2025/06/04-17:45:04.311962 7ff25a3ff6c0 Delete type=0 #1135
2025/06/04-17:45:04.332591 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.396780 7f93eb7fe6c0 Recovering log #1229
2026/01/05-17:20:14.456467 7f93eb7fe6c0 Delete type=3 #1227
2026/01/05-17:20:14.456537 7f93eb7fe6c0 Delete type=0 #1229
2026/01/05-17:22:12.851160 7f93e9ffb6c0 Level-0 table #1234: started
2026/01/05-17:22:12.851180 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
2026/01/05-17:22:12.857087 7f93e9ffb6c0 Delete type=0 #1232
2026/01/05-17:22:12.870416 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:44.957251 7ff25b7fe6c0 Recovering log #1128
2025/06/04-15:28:44.967265 7ff25b7fe6c0 Delete type=3 #1126
2025/06/04-15:28:44.967344 7ff25b7fe6c0 Delete type=0 #1128
2025/06/04-16:03:30.536357 7ff25a3ff6c0 Level-0 table #1133: started
2025/06/04-16:03:30.536423 7ff25a3ff6c0 Level-0 table #1133: 0 bytes OK
2025/06/04-16:03:30.543881 7ff25a3ff6c0 Delete type=0 #1131
2025/06/04-16:03:30.557944 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.254078 7f93eaffd6c0 Recovering log #1224
2026/01/04-22:01:24.350065 7f93eaffd6c0 Delete type=3 #1222
2026/01/04-22:01:24.350146 7f93eaffd6c0 Delete type=0 #1224
2026/01/04-22:02:13.377643 7f93e9ffb6c0 Level-0 table #1230: started
2026/01/04-22:02:13.377670 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
2026/01/04-22:02:13.384805 7f93e9ffb6c0 Delete type=0 #1228
2026/01/04-22:02:13.385131 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-001136
MANIFEST-001233

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.458785 7ff25affd6c0 Recovering log #1134
2025/06/04-17:19:09.468745 7ff25affd6c0 Delete type=3 #1132
2025/06/04-17:19:09.468888 7ff25affd6c0 Delete type=0 #1134
2025/06/04-17:45:04.318439 7ff25a3ff6c0 Level-0 table #1139: started
2025/06/04-17:45:04.318469 7ff25a3ff6c0 Level-0 table #1139: 0 bytes OK
2025/06/04-17:45:04.325169 7ff25a3ff6c0 Delete type=0 #1137
2025/06/04-17:45:04.332616 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.458755 7f93eb7fe6c0 Recovering log #1231
2026/01/05-17:20:14.498635 7f93eb7fe6c0 Delete type=3 #1229
2026/01/05-17:20:14.498701 7f93eb7fe6c0 Delete type=0 #1231
2026/01/05-17:22:12.845184 7f93e9ffb6c0 Level-0 table #1236: started
2026/01/05-17:22:12.845214 7f93e9ffb6c0 Level-0 table #1236: 0 bytes OK
2026/01/05-17:22:12.851070 7f93e9ffb6c0 Delete type=0 #1234
2026/01/05-17:22:12.870407 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:44.973169 7ff25affd6c0 Recovering log #1130
2025/06/04-15:28:44.984459 7ff25affd6c0 Delete type=3 #1128
2025/06/04-15:28:44.984535 7ff25affd6c0 Delete type=0 #1130
2025/06/04-16:03:30.544022 7ff25a3ff6c0 Level-0 table #1135: started
2025/06/04-16:03:30.544055 7ff25a3ff6c0 Level-0 table #1135: 0 bytes OK
2025/06/04-16:03:30.550364 7ff25a3ff6c0 Delete type=0 #1133
2025/06/04-16:03:30.557961 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.357771 7f93ebfff6c0 Recovering log #1226
2026/01/04-22:01:24.468440 7f93ebfff6c0 Delete type=3 #1224
2026/01/04-22:01:24.468504 7f93ebfff6c0 Delete type=0 #1226
2026/01/04-22:02:13.391738 7f93e9ffb6c0 Level-0 table #1232: started
2026/01/04-22:02:13.391763 7f93e9ffb6c0 Level-0 table #1232: 0 bytes OK
2026/01/04-22:02:13.397715 7f93e9ffb6c0 Delete type=0 #1230
2026/01/04-22:02:13.410782 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-001134
MANIFEST-001231

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.486234 7ff25bfff6c0 Recovering log #1132
2025/06/04-17:19:09.497211 7ff25bfff6c0 Delete type=3 #1130
2025/06/04-17:19:09.497296 7ff25bfff6c0 Delete type=0 #1132
2025/06/04-17:45:04.325308 7ff25a3ff6c0 Level-0 table #1137: started
2025/06/04-17:45:04.325335 7ff25a3ff6c0 Level-0 table #1137: 0 bytes OK
2025/06/04-17:45:04.332456 7ff25a3ff6c0 Delete type=0 #1135
2025/06/04-17:45:04.332625 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.575428 7f93ea7fc6c0 Recovering log #1229
2026/01/05-17:20:14.619638 7f93ea7fc6c0 Delete type=3 #1227
2026/01/05-17:20:14.619716 7f93ea7fc6c0 Delete type=0 #1229
2026/01/05-17:22:12.876750 7f93e9ffb6c0 Level-0 table #1234: started
2026/01/05-17:22:12.876780 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
2026/01/05-17:22:12.884154 7f93e9ffb6c0 Delete type=0 #1232
2026/01/05-17:22:12.900968 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:45.008049 7ff25affd6c0 Recovering log #1128
2025/06/04-15:28:45.018492 7ff25affd6c0 Delete type=3 #1126
2025/06/04-15:28:45.018631 7ff25affd6c0 Delete type=0 #1128
2025/06/04-16:03:30.558067 7ff25a3ff6c0 Level-0 table #1133: started
2025/06/04-16:03:30.558110 7ff25a3ff6c0 Level-0 table #1133: 0 bytes OK
2025/06/04-16:03:30.564426 7ff25a3ff6c0 Delete type=0 #1131
2025/06/04-16:03:30.593650 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.562817 7f93eb7fe6c0 Recovering log #1224
2026/01/04-22:01:24.662382 7f93eb7fe6c0 Delete type=3 #1222
2026/01/04-22:01:24.662455 7f93eb7fe6c0 Delete type=0 #1224
2026/01/04-22:02:13.397968 7f93e9ffb6c0 Level-0 table #1230: started
2026/01/04-22:02:13.398010 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
2026/01/04-22:02:13.404471 7f93e9ffb6c0 Delete type=0 #1228
2026/01/04-22:02:13.410790 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-001134
MANIFEST-001231

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.429340 7ff25b7fe6c0 Recovering log #1132
2025/06/04-17:19:09.439947 7ff25b7fe6c0 Delete type=3 #1130
2025/06/04-17:19:09.440019 7ff25b7fe6c0 Delete type=0 #1132
2025/06/04-17:45:04.298490 7ff25a3ff6c0 Level-0 table #1137: started
2025/06/04-17:45:04.298520 7ff25a3ff6c0 Level-0 table #1137: 0 bytes OK
2025/06/04-17:45:04.304763 7ff25a3ff6c0 Delete type=0 #1135
2025/06/04-17:45:04.305020 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.340612 7f93eb7fe6c0 Recovering log #1229
2026/01/05-17:20:14.394663 7f93eb7fe6c0 Delete type=3 #1227
2026/01/05-17:20:14.394743 7f93eb7fe6c0 Delete type=0 #1229
2026/01/05-17:22:12.857180 7f93e9ffb6c0 Level-0 table #1234: started
2026/01/05-17:22:12.857204 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
2026/01/05-17:22:12.863647 7f93e9ffb6c0 Delete type=0 #1232
2026/01/05-17:22:12.870424 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:44.939372 7ff2609fa6c0 Recovering log #1128
2025/06/04-15:28:44.950220 7ff2609fa6c0 Delete type=3 #1126
2025/06/04-15:28:44.950355 7ff2609fa6c0 Delete type=0 #1128
2025/06/04-16:03:30.528726 7ff25a3ff6c0 Level-0 table #1133: started
2025/06/04-16:03:30.528791 7ff25a3ff6c0 Level-0 table #1133: 0 bytes OK
2025/06/04-16:03:30.536083 7ff25a3ff6c0 Delete type=0 #1131
2025/06/04-16:03:30.557927 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.160908 7f93ea7fc6c0 Recovering log #1224
2026/01/04-22:01:24.250354 7f93ea7fc6c0 Delete type=3 #1222
2026/01/04-22:01:24.250444 7f93ea7fc6c0 Delete type=0 #1224
2026/01/04-22:02:13.371437 7f93e9ffb6c0 Level-0 table #1230: started
2026/01/04-22:02:13.371468 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
2026/01/04-22:02:13.377536 7f93e9ffb6c0 Delete type=0 #1228
2026/01/04-22:02:13.385115 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

View File

@@ -1 +1 @@
MANIFEST-001134
MANIFEST-001231

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.415218 7ff2609fa6c0 Recovering log #1132
2025/06/04-17:19:09.425579 7ff2609fa6c0 Delete type=3 #1130
2025/06/04-17:19:09.425663 7ff2609fa6c0 Delete type=0 #1132
2025/06/04-17:45:04.291860 7ff25a3ff6c0 Level-0 table #1137: started
2025/06/04-17:45:04.291911 7ff25a3ff6c0 Level-0 table #1137: 0 bytes OK
2025/06/04-17:45:04.298331 7ff25a3ff6c0 Delete type=0 #1135
2025/06/04-17:45:04.305006 7ff25a3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.280921 7f93ea7fc6c0 Recovering log #1229
2026/01/05-17:20:14.337958 7f93ea7fc6c0 Delete type=3 #1227
2026/01/05-17:20:14.338043 7f93ea7fc6c0 Delete type=0 #1229
2026/01/05-17:22:12.838440 7f93e9ffb6c0 Level-0 table #1234: started
2026/01/05-17:22:12.838473 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
2026/01/05-17:22:12.844706 7f93e9ffb6c0 Delete type=0 #1232
2026/01/05-17:22:12.844991 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:44.907467 7ff25affd6c0 Recovering log #1128
2025/06/04-15:28:44.933287 7ff25affd6c0 Delete type=3 #1126
2025/06/04-15:28:44.933354 7ff25affd6c0 Delete type=0 #1128
2025/06/04-16:03:30.521711 7ff25a3ff6c0 Level-0 table #1133: started
2025/06/04-16:03:30.521751 7ff25a3ff6c0 Level-0 table #1133: 0 bytes OK
2025/06/04-16:03:30.528207 7ff25a3ff6c0 Delete type=0 #1131
2025/06/04-16:03:30.528580 7ff25a3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.060098 7f93ebfff6c0 Recovering log #1224
2026/01/04-22:01:24.158104 7f93ebfff6c0 Delete type=3 #1222
2026/01/04-22:01:24.158187 7f93ebfff6c0 Delete type=0 #1224
2026/01/04-22:02:13.363838 7f93e9ffb6c0 Level-0 table #1230: started
2026/01/04-22:02:13.363872 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
2026/01/04-22:02:13.371335 7f93e9ffb6c0 Delete type=0 #1228
2026/01/04-22:02:13.385100 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

View File

View File

@@ -1 +1 @@
MANIFEST-000777
MANIFEST-000874

View File

@@ -1,7 +1,7 @@
2025/06/04-17:19:09.473204 7ff2609fa6c0 Recovering log #775
2025/06/04-17:19:09.483139 7ff2609fa6c0 Delete type=3 #773
2025/06/04-17:19:09.483218 7ff2609fa6c0 Delete type=0 #775
2025/06/04-17:45:04.312115 7ff25a3ff6c0 Level-0 table #780: started
2025/06/04-17:45:04.312145 7ff25a3ff6c0 Level-0 table #780: 0 bytes OK
2025/06/04-17:45:04.318313 7ff25a3ff6c0 Delete type=0 #778
2025/06/04-17:45:04.332603 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
2026/01/05-17:20:14.509126 7f93ea7fc6c0 Recovering log #872
2026/01/05-17:20:14.568971 7f93ea7fc6c0 Delete type=3 #870
2026/01/05-17:20:14.569021 7f93ea7fc6c0 Delete type=0 #872
2026/01/05-17:22:12.863773 7f93e9ffb6c0 Level-0 table #877: started
2026/01/05-17:22:12.863802 7f93e9ffb6c0 Level-0 table #877: 0 bytes OK
2026/01/05-17:22:12.870319 7f93e9ffb6c0 Delete type=0 #875
2026/01/05-17:22:12.870431 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/06/04-15:28:44.990819 7ff25b7fe6c0 Recovering log #771
2025/06/04-15:28:45.002034 7ff25b7fe6c0 Delete type=3 #769
2025/06/04-15:28:45.002200 7ff25b7fe6c0 Delete type=0 #771
2025/06/04-16:03:30.550493 7ff25a3ff6c0 Level-0 table #776: started
2025/06/04-16:03:30.550525 7ff25a3ff6c0 Level-0 table #776: 0 bytes OK
2025/06/04-16:03:30.557793 7ff25a3ff6c0 Delete type=0 #774
2025/06/04-16:03:30.557980 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
2026/01/04-22:01:24.471625 7f93eaffd6c0 Recovering log #867
2026/01/04-22:01:24.559238 7f93eaffd6c0 Delete type=3 #865
2026/01/04-22:01:24.559306 7f93eaffd6c0 Delete type=0 #867
2026/01/04-22:02:13.404597 7f93e9ffb6c0 Level-0 table #873: started
2026/01/04-22:02:13.404646 7f93e9ffb6c0 Level-0 table #873: 0 bytes OK
2026/01/04-22:02:13.410707 7f93e9ffb6c0 Delete type=0 #871
2026/01/04-22:02:13.410796 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

Binary file not shown.