Skip to content

Зарплата шпионам в кредитах - #2101

Merged
github-actions[bot] merged 2 commits into
mainfrom
claude/project-thread-nhh9yl
Nov 11, 2026
Merged

github-actions[bot] merged 2 commits into
mainfrom
claude/project-thread-nhh9yl

Conversation

@Arka2248

Copy link
Copy Markdown

Requested by Jojo · project thread

Что и зачем

Шпионы теперь получают зарплату в кредитах — просьба владельца от 2026-11-11.

  • Ставка: SPY_SALARY = 24 кредита в сутки на шпиона. Это между фрегатом (16) и крейсером (32): базовая сеть из 3 шпионов стоит 72 кредита в сутки, примерно как два крейсера. Время сжимается timeScale, как и всё остальное содержание.
  • Кто получает: каждый шпион сети, где бы он ни был: в покое, в пути, на задании или «на дне». Сеть, где ещё не отдан ни один приказ, тоже платит за свои 3 шпионов. Слот в состоянии recruit (убит или перевербован, ждёт замену) не платится. Перевербованному агенту платит сторона, которой он сейчас служит. NPC (npc) и выбывшие игроки не платят.
  • Как списывается: новый хук экономики economy.upkeep — это весь дневной счёт игрока, его база — содержание юнитов и зданий. Шпионаж добавляет туда зарплату, поэтому неоплата загоняет кредиты в долг (arrears) и включает brownout, как неоплаченная армия. Сломанный результат хука откатывается к базовому счёту (fail-secure).
  • Под уровни шпионов (Опыт и уровни шпионов (модуль spy-levels) #2099): хук espionage.salary с аргументами { playerId, spyId } позволяет менять плату по каждому шпиону. Когда Опыт и уровни шпионов (модуль spy-levels) #2099 вольётся, spy-levels сможет одной строкой поднять ставку по уровню. Здесь этого нет, чтобы не конфликтовать с Опыт и уровни шпионов (модуль spy-levels) #2099.
  • Прототип: netIncome/incomeBreakdown учитывают зарплату, поэтому HUD +/ч совпадает с ядром. В карточке кредитов появилась строка «Зарплата шпионов» (rescard.spies, все 5 локалей).
  • Хук подрыва экономики (SPY-15) перенесён вместе с зарплатой в modules/espionage/economy.ts, без изменения поведения: espionageModule.setup должен уложиться в потолок размера.
  • Версии: economy 1.5.0, espionage 2.1.0; пара миграции соло-сейва SPY_SALARY_SOLO_MIGRATION (только правила).

Зона

  • Затрагивает один пакет / модуль / зону данных (по возможности): экономика + шпионаж в ядре и их зеркало в HUD прототипа
  • Ядро (packages/shared-core/src/kernel/) не редактировалось под фичу

Качество

  • pnpm run check зелёный (lint + typecheck + test + docs-check), локально и в pre-push
  • Добавлены/обновлены тесты: modules/espionage/economy.test.ts (ставка, начисление по формуле, слот recruit, NPC/выбывшие, долг, оба хука и откат при сломанном результате); тесты подрыва и разбиения дохода по мирам учитывают зарплату
  • Инварианты соблюдены (детерминизм, чистота, fail-secure, только через шину)

Документация

  • docs/state.md обновлён (экономика и шпионаж)

Generated by Claude Code

Каждый шпион сети стоит 24 кредита в сутки (между фрегатом и крейсером):
счёт идёт через новый хук economy.upkeep вместе с содержанием армии, так
что неоплата загоняет кредиты в долг. Пустой слот в ожидании замены не
платится, NPC и выбывшие не платят. Хук espionage.salary гнёт плату по
шпиону. HUD и карточка кредитов показывают строку «Зарплата шпионов».
Перенос хука подрыва экономики в modules/espionage/economy.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JAUhvWBegWfXid2rrJZrF8
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://claude-project-thread-nhh9yl-void-dominion.mazujlava.workers.dev (commit b62161c)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://c4afc900-void-dominion.mazujlava.workers.dev b62161c 2026-11-11T11:57:38.934Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://fbd9dcb1-void-dominion.mazujlava.workers.dev a946eab 2026-11-11T11:18:56.858Z Visit the dashboard ↗

@github-actions

Copy link
Copy Markdown
Contributor

🛡️ Security scan — сводный отчёт

Коммит: a946eab · ветка: claude/project-thread-nhh9yl · лог прогона

🔎 Подтверждение сканов — 18/21 (+3 пропущено)

Сканер Подтверждён
Semgrep — SAST (паттерны) ✅ просканировано
CodeQL — SAST (data-flow/taint) ✅ просканировано
Gitleaks — секреты (дерево) ✅ просканировано
TruffleHog — секреты (история + верификация) ✅ просканировано
OSV-Scanner — SCA (osv.dev) ✅ просканировано
OWASP Dependency-Check — SCA (NVD/CPE) ⏭ пропущено (по расписанию/вручную)
Trivy fs — vuln/secret/IaC ✅ просканировано
Trivy image — базовая ОС образа ✅ просканировано
Smoke — собранный образ стартует и отвечает ✅ просканировано
Trivy image — наш образ Caddy (SEC-31) ✅ просканировано
Smoke — образ Caddy стартует и обслуживает ✅ просканировано
Trivy image — сторонние образы прода (postgres) ✅ просканировано
KICS — IaC (Docker Compose прода) ✅ просканировано
Dependency Review — что вносит PR (GHSA) ⏭ пропущено (только на PR)
OWASP ZAP — DAST (baseline против запущенного сервера) ✅ просканировано
zizmor — безопасность workflow ✅ просканировано
actionlint — корректность workflow + встроенный shell ✅ просканировано
ShellCheck — shell-скрипты ✅ просканировано
Hadolint — Dockerfile ✅ просканировано
OpenSSF Scorecard — постура ⏭ пропущено (только на main)
Syft — SBOM (CycloneDX) ✅ просканировано
Серьёзность Σ новые (нет на main)
🔴 error 181 18
🟠 warning 524 13
🔵 note 193 6
⚪ none 1 1

Подавлено сканерами (с обоснованием в коде/конфиге): 4 — в таблицы ниже не входят.
SBOM (CycloneDX): ✅ sbom.cdx.json, sbom-image.cdx.json

По инструментам

Инструмент 🔴 🟠 🔵
CodeQL 0 5 0
Hadolint 0 1 6
KICS 0 149 0
ShellCheck 1 4 18
Trivy 180 363 116
TruffleHog 0 0 43
ZAP 0 0 0
actionlint 0 2 10

Уже есть на main: 861 — в таблицу ниже не входят (полный список — в логе прогона).

Новые находки (топ 30 из 38)

Инструмент Правило Где Сообщение
🔴 Trivy CVE-2026-107364 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-107364 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-107364
🔴 Trivy CVE-2026-112315 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112315 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112315
🔴 Trivy CVE-2026-112316 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112316 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112316
🔴 Trivy CVE-2026-112317 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112317 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112317
🔴 Trivy CVE-2026-112318 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112318 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112318
🔴 Trivy CVE-2026-112319 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112319 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112319
🔴 Trivy CVE-2026-112320 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112320 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112320
🔴 Trivy CVE-2026-112321 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112321 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112321
🔴 Trivy CVE-2026-112322 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112322 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112322
🔴 Trivy CVE-2026-112323 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112323 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-112323
🔴 Trivy CVE-2026-118380 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-118380 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-118380
🔴 Trivy CVE-2026-119079 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-119079 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-119079
🔴 Trivy CVE-2026-40355 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-40355 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-40355](
🔴 Trivy CVE-2026-40356 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-40356 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-40356](
🔴 Trivy CVE-2026-71199 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-71199 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-71199](
🔴 Trivy CVE-2026-71200 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-71200 Severity: HIGH Fixed Version: 1.22.3-r0 Link: [CVE-2026-71200](
🔴 Trivy CVE-2026-87636 library/postgres:1 Package: libxslt Installed Version: 1.1.43-r3 Vulnerability CVE-2026-87636 Severity: HIGH Fixed Version: 1.1.43-r4 Link: [CVE-2026-87636](ht
🔴 Trivy CVE-2026-9947 library/postgres:1 Package: libxslt Installed Version: 1.1.43-r3 Vulnerability CVE-2026-9947 Severity: HIGH Fixed Version: 1.1.43-r4 Link: [CVE-2026-9947](http
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: bsdutils Installed Version: 1:2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642]
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: libblkid1 Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642](
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: libmount1 Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642](
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: libsmartcols1 Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-766
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: libuuid1 Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642](h
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: mount Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642](http
🟠 Trivy CVE-2026-76642 grafana/alloy:1 Package: util-linux Installed Version: 2.39.3-9ubuntu6.6 Vulnerability CVE-2026-76642 Severity: MEDIUM Fixed Version: Link: [CVE-2026-76642]
🟠 Trivy CVE-2026-107708 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-107708 Severity: MEDIUM Fixed Version: 1.22.3-r0 Link: [CVE-2026-1077
🟠 Trivy CVE-2026-107778 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-107778 Severity: MEDIUM Fixed Version: 1.22.3-r0 Link: [CVE-2026-1077
🟠 Trivy CVE-2026-107884 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-107884 Severity: MEDIUM Fixed Version: 1.22.3-r0 Link: [CVE-2026-1078
🟠 Trivy CVE-2026-111423 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-111423 Severity: MEDIUM Fixed Version: 1.22.3-r0 Link: [CVE-2026-1114
🟠 Trivy CVE-2026-112314 library/postgres:1 Package: krb5-libs Installed Version: 1.22.2-r1 Vulnerability CVE-2026-112314 Severity: MEDIUM Fixed Version: 1.22.3-r0 Link: [CVE-2026-1123

…и ещё 8. Полные SARIF — в артефактах прогона.


ℹ️ Блокирующие сканеры (SEC-1): Semgrep, Gitleaks, OSV, Trivy fs/image — находка или сбой скана валит их джобу; остальные (CodeQL, TruffleHog, Trivy deps, Dependency-Check, zizmor, Scorecard) — информационные. Разные движки/источники — для перекрёстной валидации; «0» достоверно только у подтверждённых сканеров. Полные SARIF/SBOM — в артефактах прогона.

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

🚦 Авто-мерж

✅ PR поставлен в очередь — очередь перепроверит его на «свежий main + PR» и вольёт.

…-nhh9yl

# Conflicts:
#	decisions/soloSaveMigration.test.ts
#	decisions/soloSaveMigration.ts
#	docs/state.md
@github-actions
github-actions Bot added this pull request to the merge queue Nov 11, 2026
Merged via the queue into main with commit aaabec2 Nov 11, 2026
57 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants