fix(subscriptions): correct Ollama typo, drop Kimi K3, restore footer GitHub icon #19
Labels
No labels
bug
performance
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
slaid098/slaid098-dev#19
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
Зачем: на сайте slaid098-dev (Next.js 15 App Router + React 19 + TS + Tailwind v4, bilingual i18n через
src/lib/i18n.ts) накопились три мелких бага контента/UI: опечатка в карточке Ollama, устаревшее упоминание модели в карточке Synthetic.new и подменённый иконок в футере.Контекст:
src/components/site-footer.tsx(строки 28–30) рендерится «точка в круге» (radio-button/target dot, viewBox0 0 24 24, pathM12 2C6.48 2...zm0 18c-4.41...zm-3-9c0-1.66...). Это заменило оригинальный GitHub-octocat SVG в коммите9ab8d5c(PR #15, 2026-08-07) — commit message утверждал «forgejo svg», но путь является радиокнопкой, а не настоящей маркой Forgejo. Ссылка осталась наhttps://git.slaid098.dev/slaid098сaria-label="Forgejo"— меняется только видимый глиф.Задача
Файл 1:
src/lib/i18n.tsОбъект
subscriptions.cardsхранит 4 карточки, индексы позиционно соответствуютSUBSCRIPTIONSвsrc/lib/subscriptions.ts(порядок: 0=OpenCode Go, 1=Synthetic.new, 2=Ollama, 3=Umans). RU-блок в строках 160–189, EN-блок в строках 275–304. Каждая строка вdescriptionsрендерится отдельным<p>на/[locale]/subscriptions.Редакт 1 — строка 179 (RU, карточка Ollama, индекс 2):
Прозрачный расчёт за серверное время: экономишь токены — получаешь больше запросов. Тестировал, как Pro так и Max.Прозрачный расчёт за серверное время: экономишь токены — получаешь больше запросов. Тестировал, как Pro, так и Max.Pro→как Pro, так и.Редакт 2 — строка 174 (RU, карточка Synthetic.new, индекс 1):
Скользящие лимиты: 5-часовой и недельный, оба постоянно восстанавливаются. Лимиты масштабируются пакетами. Внутри — Kimi K3.Скользящие лимиты: 5-часовой и недельный, оба постоянно восстанавливаются. Лимиты масштабируются пакетами.Внутри — Kimi K3.(текст заканчивается на...пакетами.).Редакт 3 — строка 289 (EN, карточка Synthetic.new, индекс 1):
Sliding limits: 5-hour and weekly, both continuously refill. Limits scale in packages. Inside — Kimi K3.Sliding limits: 5-hour and weekly, both continuously refill. Limits scale in packages.Inside — Kimi K3.(текст заканчивается на...packages.).Редакт 4 — строка 184 (RU, карточка Umans, индекс 3, первое описание):
Успел попробовать подписку за 20 USD. Было 400 запросов на 5 часов без недельных лимитов. Code Max попробовать не успел. Единственным ограничением было количество одновременных потоков. Без 5-часовых и недельных лимитов.Успел попробовать подписку за 20 USD. Было 400 запросов на 5 часов без недельных лимитов. Code Max попробовать не успел. Единственным ограничением было количество одновременных потоков.Без 5-часовых и недельных лимитов.(повторяет «без недельных лимитов» из середины предложения).Редакт 5 — строка 299 (EN, карточка Umans, индекс 3, первое описание):
Tried the $20 subscription. Had 400 requests per 5 hours with no weekly limits. Didn't get to try Code Max. The only constraint was the number of concurrent threads. No 5-hour or weekly limits.Tried the $20 subscription. Had 400 requests per 5 hours with no weekly limits. Didn't get to try Code Max. The only constraint was the number of concurrent threads.No 5-hour or weekly limits.Без изменений — строки 185 / 300 (карточка Umans, второе описание, RU/EN): текст остаётся дословно.
Файл 2:
src/components/site-footer.tsxЗаменить SVG-блок в строках 28–30 (внутри
<a>строк 21–27) на оригинальный GitHub-octocat SVG, использовавшийся до коммита9ab8d5c:Окружающий
<a>(строки 21–27) остаётся без изменений:href="https://git.slaid098.dev/slaid098",aria-label={d.footer.repo}(= «Forgejo»),rel="noreferrer",target="_blank".<span className="sr-only">{d.footer.repo}</span>(строка 31) остаётся. Меняется только блок<svg>(строки 28–30).Контракты
SUBSCRIPTIONSвsrc/lib/subscriptions.ts.href="https://git.slaid098.dev/slaid098",aria-label="Forgejo",rel="noreferrer",target="_blank"— без изменений.width="16" height="16" viewBox="0 0 16 16",fill="currentColor",aria-hidden="true"— размер 16×16 сохранён (требование тестаcontacts.test.tsx:138–149).Инварианты
width="16" height="16"(heart = 16×16, restored github icon = 16×16).<p>).Граничные случаи
descriptions.every(d => d.length > 0)проходит) — тестsubscriptions.test.ts:24–35остаётся зелёным.viewBox="0 0 16 16"вместоviewBox="0 0 24 24"— но тест проверяет толькоwidth/heightатрибуты, неviewBox→ проходит.aria-label={d.footer.repo}остаётся «Forgejo» — текстовое содержимое<span className="sr-only">не зависит от выбранного SVG.Влияние на связанные компоненты
src/lib/subscriptions.ts— без изменений (только данные карточек; имена/URL не трогаются).src/__tests__/subscriptions.test.ts— без изменений: проверяет ровно 4 карточки с непустыми описаниями (RU+EN) — правки сохраняют инварианты теста.src/__tests__/contacts.test.tsx:126–130(«retains Forgejo link») — проходит:hrefиaria-labelне меняются.src/__tests__/contacts.test.tsx:138–149(«renders heart icon at same size as github icon (16x16)») — проходит: восстановленный SVG имеетwidth="16" height="16"./[locale]/subscriptions— текст карточек 1 (Synthetic.new), 2 (Ollama), 3 (Umans) обновляется; карточка 0 (OpenCode Go) не трогается.Вне scope
aria-label="Forgejo"или тестов, упоминающих «github icon» — только восстановление видимого глифа.git.slaid098.dev/slaid098.Критерии приемки
src/lib/i18n.ts: текст содержиткак Pro, так и(запятая послеPro).src/lib/i18n.ts: текст заканчивается на...пакетами.безВнутри — Kimi K3..src/lib/i18n.ts: текст заканчивается на...packages.безInside — Kimi K3..src/lib/i18n.ts: текст заканчивается на...потоков.безБез 5-часовых и недельных лимитов..src/lib/i18n.ts: текст заканчивается на...concurrent threads.безNo 5-hour or weekly limits.src/components/site-footer.tsxстроки 28–30: рендерится GitHub-octocat SVG (viewBox="0 0 16 16", путьM8 0C3.58 0 0 3.58 0 8...).<a>футера:href="https://git.slaid098.dev/slaid098",aria-label="Forgejo",target="_blank",rel="noreferrer"— без изменений.npm test(vitest run) — все тесты зелёные, включаяsubscriptions i18nиSiteFooter.npm run lint(biome check) — без ошибок.npm run typecheck(tsc --noEmit) — без ошибок.