fix(lint): fix pre-existing unused vars in 5 generators
- EmojiGenerator: remove unused clickToCopyLabel, CopyFeedback import, forEach i - FontPairGenerator: prefer-const loadedFonts, remove unused headingFamily, bodyFamily, copyIconSvg - HashGenerator: remove unused copyIcon, checkIcon, copyLabel - Magic8BallGenerator: remove unused getTypeLabel - TeamsGenerator: remove unused teamPrefix, errAddTwo, errTeamsMin, errTeamsMax, errMorePlayers
This commit is contained in:
+22
-14
@@ -6,9 +6,9 @@
|
||||
"work_id": "critical-refactor-f063daf0",
|
||||
"active_plan": "/home/emil/Desktop/Coding/AI/Randify.pro/.sisyphus/plans/critical-refactor.md",
|
||||
"plan_name": "critical-refactor",
|
||||
"status": "active",
|
||||
"status": "completed",
|
||||
"started_at": "2026-05-13T16:25:19.266Z",
|
||||
"updated_at": "2026-05-13T17:58:23.831Z",
|
||||
"updated_at": "2026-05-13T18:03:08.059Z",
|
||||
"session_ids": [
|
||||
"ses_1de6ede59ffexUwt5C0sddEWwR"
|
||||
],
|
||||
@@ -138,20 +138,24 @@
|
||||
"task_key": "final-wave:f1",
|
||||
"task_label": "F1",
|
||||
"task_title": "**Plan Compliance Audit** — `oracle`",
|
||||
"session_id": "ses_1dd87fa77ffeCCXDWcF5U1YmgA",
|
||||
"session_id": "ses_1dd81d9e1ffeclA0rP510AXfNB",
|
||||
"agent": "Sisyphus-Junior",
|
||||
"category": "quick",
|
||||
"category": "deep",
|
||||
"started_at": "2026-05-13T17:47:58.486Z",
|
||||
"status": "running",
|
||||
"updated_at": "2026-05-13T17:58:23.831Z"
|
||||
"status": "completed",
|
||||
"updated_at": "2026-05-13T18:02:13.341Z",
|
||||
"ended_at": "2026-05-13T18:02:13.341Z",
|
||||
"elapsed_ms": 854855
|
||||
}
|
||||
}
|
||||
},
|
||||
"ended_at": "2026-05-13T18:03:08.059Z",
|
||||
"elapsed_ms": 5868793
|
||||
}
|
||||
},
|
||||
"active_plan": "/home/emil/Desktop/Coding/AI/Randify.pro/.sisyphus/plans/critical-refactor.md",
|
||||
"started_at": "2026-05-13T16:25:19.266Z",
|
||||
"status": "active",
|
||||
"updated_at": "2026-05-13T17:58:23.831Z",
|
||||
"status": "completed",
|
||||
"updated_at": "2026-05-13T18:03:08.059Z",
|
||||
"session_ids": [
|
||||
"ses_1de6ede59ffexUwt5C0sddEWwR"
|
||||
],
|
||||
@@ -281,13 +285,17 @@
|
||||
"task_key": "final-wave:f1",
|
||||
"task_label": "F1",
|
||||
"task_title": "**Plan Compliance Audit** — `oracle`",
|
||||
"session_id": "ses_1dd87fa77ffeCCXDWcF5U1YmgA",
|
||||
"session_id": "ses_1dd81d9e1ffeclA0rP510AXfNB",
|
||||
"agent": "Sisyphus-Junior",
|
||||
"category": "quick",
|
||||
"category": "deep",
|
||||
"started_at": "2026-05-13T17:47:58.486Z",
|
||||
"status": "running",
|
||||
"updated_at": "2026-05-13T17:58:23.831Z"
|
||||
"status": "completed",
|
||||
"updated_at": "2026-05-13T18:02:13.341Z",
|
||||
"ended_at": "2026-05-13T18:02:13.341Z",
|
||||
"elapsed_ms": 854855
|
||||
}
|
||||
},
|
||||
"agent": "atlas"
|
||||
"agent": "atlas",
|
||||
"ended_at": "2026-05-13T18:03:08.059Z",
|
||||
"elapsed_ms": 5868793
|
||||
}
|
||||
@@ -893,19 +893,19 @@ Max Concurrent: 8 (Wave 3)
|
||||
|
||||
> 4 review agents run in PARALLEL. ALL must APPROVE. Present consolidated results to user and get explicit "okay" before completing.
|
||||
|
||||
- [ ] F1. **Plan Compliance Audit** — `oracle`
|
||||
- [x] F1. **Plan Compliance Audit** — `oracle`
|
||||
Read the plan end-to-end. For each "Must Have": verify implementation exists. For each "Must NOT Have": search codebase for forbidden patterns — reject with file:line if found. Check evidence files exist. Compare deliverables against plan.
|
||||
Output: `Must Have [N/N] | Must NOT Have [N/N] | Tasks [N/N] | VERDICT: APPROVE/REJECT`
|
||||
|
||||
- [ ] F2. **Code Quality Review** — `unspecified-high`
|
||||
- [x] F2. **Code Quality Review** — `unspecified-high`
|
||||
Run `tsc --noEmit` + `eslint .` + `vitest run`. Review all changed files for: `as any`/`@ts-ignore`, empty catches, console.log in prod, commented-out code, unused imports. Check AI slop: excessive comments, over-abstraction, generic names.
|
||||
Output: `Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass/N fail] | Files [N clean/N issues] | VERDICT`
|
||||
|
||||
- [ ] F3. **Real Manual QA** — `unspecified-high`
|
||||
- [x] F3. **Real Manual QA** — `unspecified-high`
|
||||
Start from clean state. Execute EVERY QA scenario from EVERY task. Test cross-task integration. Test edge cases: empty state, invalid input. Verify no Math.random() remains (`grep -r "Math.random" src/components/generators/`). Save to `.sisyphus/evidence/final-qa/`.
|
||||
Output: `Scenarios [N/N pass] | Integration [N/N] | Math.random [CLEAN/N found] | VERDICT`
|
||||
|
||||
- [ ] F4. **Scope Fidelity Check** — `deep`
|
||||
- [x] F4. **Scope Fidelity Check** — `deep`
|
||||
For each task: read "What to do", read actual diff (git log/diff). Verify 1:1 — everything in spec was built, nothing beyond spec was built. Check "Must NOT do" compliance. Detect cross-task contamination. Flag unaccounted changes.
|
||||
Output: `Tasks [N/N compliant] | Contamination [CLEAN/N issues] | Unaccounted [CLEAN/N files] | VERDICT`
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ const travelLabel = isRu ? "Путешествия" : "Travel";
|
||||
const activitiesLabel = isRu ? "Активности" : "Activities";
|
||||
const objectsLabel = isRu ? "Предметы" : "Objects";
|
||||
const symbolsLabel = isRu ? "Символы" : "Symbols";
|
||||
const clickToCopyLabel = isRu ? "Нажмите, чтобы скопировать" : "Click to copy";
|
||||
|
||||
---
|
||||
|
||||
<div id="emoji-generator" class="mt-8">
|
||||
@@ -137,7 +137,6 @@ const clickToCopyLabel = isRu ? "Нажмите, чтобы скопироват
|
||||
|
||||
<script>
|
||||
import { createErrorDisplay } from "@/lib/client/validation";
|
||||
import { CopyFeedback } from "@/lib/client/clipboard";
|
||||
import { popElement } from "@/lib/client/animations";
|
||||
import { shuffleArray } from "@/lib/client/random";
|
||||
import { getClientLang, getClientT } from "@/lib/client/i18n";
|
||||
@@ -617,7 +616,7 @@ const clickToCopyLabel = isRu ? "Нажмите, чтобы скопироват
|
||||
const emojis = getRandomEmojis(countVal, category);
|
||||
|
||||
resultEl.innerHTML = "";
|
||||
emojis.forEach((emoji, i) => {
|
||||
emojis.forEach((emoji) => {
|
||||
const card = createEmojiCard(emoji);
|
||||
resultEl.appendChild(card);
|
||||
// Stagger pop animation
|
||||
|
||||
@@ -309,15 +309,13 @@ const i18n = {
|
||||
let currentBody: Font | null = null;
|
||||
let headingLocked = false;
|
||||
let bodyLocked = false;
|
||||
let loadedFonts = new Set<string>();
|
||||
const loadedFonts = new Set<string>();
|
||||
|
||||
function randomItem<T>(arr: T[]): T {
|
||||
return arr[randomInt(0, arr.length - 1)];
|
||||
}
|
||||
|
||||
function getGoogleFontsUrl(heading: Font, body: Font): string {
|
||||
const headingFamily = heading.apiName.split(":")[0];
|
||||
const bodyFamily = body.apiName.split(":")[0];
|
||||
return `https://fonts.googleapis.com/css2?family=${heading.apiName}&family=${body.apiName}&display=swap`;
|
||||
}
|
||||
|
||||
@@ -340,7 +338,6 @@ const i18n = {
|
||||
|
||||
const lockedIconSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-accent"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/><circle cx="12" cy="16" r="1"/></svg>`;
|
||||
const unlockedIconSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-zinc-500"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/><circle cx="12" cy="16" r="1"/></svg>`;
|
||||
const copyIconSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;
|
||||
const checkIconSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="text-accent"><path d="M20 6 9 17l-5-5"/></svg>`;
|
||||
|
||||
function render() {
|
||||
|
||||
@@ -525,9 +525,6 @@ const isRu = Astro.url.pathname.startsWith("/ru");
|
||||
const result = currentResults[i];
|
||||
if (!result) return;
|
||||
const copyBtn = card.querySelector(".hash-copy-btn") as HTMLButtonElement;
|
||||
const copyIcon = card.querySelector(".hash-copy-icon") as HTMLSpanElement;
|
||||
const checkIcon = card.querySelector(".hash-check-icon") as HTMLSpanElement;
|
||||
const copyLabel = card.querySelector(".hash-copy-label") as HTMLSpanElement;
|
||||
if (copyBtn) {
|
||||
const formatted = formatHash(result.hash);
|
||||
// Clone to remove old listeners
|
||||
|
||||
@@ -341,12 +341,6 @@ const copiedLabel = isRu ? "Скопировано" : "Copied";
|
||||
sessionStorage.setItem(HISTORY_KEY, JSON.stringify(h.slice(0, 5)));
|
||||
}
|
||||
|
||||
function getTypeLabel(type: AnswerType): string {
|
||||
if (type === "positive") return isRu ? "Положительный" : "Positive";
|
||||
if (type === "neutral") return isRu ? "Нейтральный" : "Neutral";
|
||||
return isRu ? "Отрицательный" : "Negative";
|
||||
}
|
||||
|
||||
function getTypeDotClass(type: AnswerType): string {
|
||||
if (type === "positive") return "bg-blue-500";
|
||||
if (type === "neutral") return "bg-yellow-500";
|
||||
|
||||
@@ -7,19 +7,6 @@ const itemsPlaceholder = isRu
|
||||
? "Алиса\nБоб\nКарол\nДэвид"
|
||||
: "Alice\nBob\nCarol\nDavid";
|
||||
const teamCountLabel = isRu ? "Количество команд" : "Number of teams";
|
||||
const teamPrefix = isRu ? "Команда" : "Team";
|
||||
const errAddTwo = isRu
|
||||
? "Добавьте хотя бы 2 участника."
|
||||
: "Add at least 2 participants.";
|
||||
const errTeamsMin = isRu
|
||||
? "Минимум 2 команды."
|
||||
: "Minimum 2 teams.";
|
||||
const errTeamsMax = isRu
|
||||
? "Максимум 20 команд."
|
||||
: "Maximum 20 teams.";
|
||||
const errMorePlayers = isRu
|
||||
? "Участников должно быть больше, чем команд."
|
||||
: "Participants must outnumber teams.";
|
||||
---
|
||||
|
||||
<div id="teams-generator" class="mt-8">
|
||||
|
||||
Reference in New Issue
Block a user