diff --git a/family/how-to/arr-stack-taiga.md b/family/how-to/arr-stack-taiga.md index 70250f08..d235cf1d 100755 --- a/family/how-to/arr-stack-taiga.md +++ b/family/how-to/arr-stack-taiga.md @@ -281,6 +281,18 @@ Transmission ограничивал загрузки пятью слотами, Бэкап Prowlarr SQLite и исходного indexer JSON, параметров очереди: `/mnt/RED_2TB/docker/arr/lidarr/rutracker-title-fix-20261102T040020Z/`. До замены worker сохранены файлы в `lidarr-autosearch/before-pack-normalization-20261102T040501Z/`, перед снятием суточного ожидания — `state-before-title-retry-reset.json`. Откат — вернуть только `russianLetters` и параметры Transmission из JSON, при необходимости предыдущий worker. Не восстанавливать всю живую БД. +### Автопоиск русских имён при латинском имени MusicBrainz, 2026-11-05 + +У Plamenev (artist 473, MBID `8a907c72-8387-4da1-871b-4467cf0abddc`) мониторинг всех четырёх альбомов был включён, но ArtistSearch 2–4 ноября каждый раз скачивал 0 отчётов. Причина подтверждена кодом `SearchCriteriaBase.ArtistQuery => Artist.Name`: штатный поиск использовал только `Plamenev`. В текущем MusicBrainz и в ArtistMetadata.Aliases нет русских псевдонимов этого MBID. Такой запрос находил только MP3-сингл Princess, отсутствующий в текущем каталоге, и FLAC-пак с неизвестным артистом. Запрос `Пламенев` в тех же настроенных индексерах находит MP3-дискографии RuTracker 5777792 и NoNaMe Club 1254828. Это проблема полноты имени запроса, а не выключенного monitoring или недоступных индексеров. + +Постоянное общее исправление — модуль `/mnt/RED_2TB/docker/arr/lidarr-autosearch/lidarr_alias_search.py`, вызываемый обычным worker после ArtistSearch и нормализации паков. Он работает только с monitored-артистами, у которых 0 импортированных треков и не было grabbed: уже скачанные или зависшие пакеты не дублируются. Нужны как минимум два вышедших monitored-альбома. Используются сохранённые кириллические псевдонимы; при отсутствии — обратимая транслитерация латинского имени, только если как минимум два названия альбомов кириллические. Неподдержанные буквы не угадываются. Общие правила не содержат имён/ID конкретных артистов. + +Альтернативный поиск идёт через Prowlarr только в индексеры, уже включённые в automatic search самого Lidarr. До принятия пакета читается только небольшой torrent metainfo: его MP3-пути должны содержать два разных названия нужных monitored-альбомов, а заголовок — соответствовать имени/его транслитерации. Аудиокниги, чужие авторы, FLAC, одно совпадение и будущие/выключенные альбомы такой проверки не проходят. После подтверждения содержимого переводится название дискографии в каноническое имя и повторно вызываются `/parse` и **полный `/release/push` RSS decision engine**. Ограничения качества, сидов и monitoring сохраняются; принудительного `/release` в этом модуле нет. + +`SEARCH_POLICY_VERSION=3`: смена общей политики повторно рассматривает подходящих артистов без ручного сброса состояния Plamenev. Cron 4, периодичность и профили не изменялись. Бэкап прежних worker/tests/state: `/mnt/RED_2TB/docker/arr/lidarr-autosearch/backup-name-search-20261105T051857Z/`. Сначала установлен модуль-зависимость, затем атомарно опубликован worker. Все 50 тестов прошли локально и на NAS (8 новых тестов альтернативного поиска, 23 worker, 15 metadata search, 4 имён файлов). + +Реальная приёмка 05:19:50 UTC: этот же общий обработчик нашёл по `Пламенев` и проверил в NoNaMe Club 1254828 MP3-пак «3 альбома, 9 сборников, 2013–2021» размером 1 304 529 537 байт. Подтверждены каталоги «Герой с тысячью лиц», «Крадущая сны», «Для мира на земле». Lidarr одобрил пакет без единого отказа; Transmission hash `F5754EEF71798B17B3E961346CDEE1DCBF91A9F7`. На 05:27:08 UTC downloadedEver=166 529 665, haveValid=166 300 289, прогресс 12,8%, скорость 1 146 880 байт/с, один подключённый сид, ошибок нет. Английский The Hero With a Thousand Faces не найден в проверенных каталогах пакета и остаётся monitored. Пока не объявлять всю загрузку/импорт завершёнными. Нативное подтверждение и состояние библиотеки: `plamenev-name-search-validation.json`; события `alternate_name_search` / `alternate_pack_decision` в `runs.jsonl`. + ### Общее исправление автозагрузки monitored-артистов, 2026-11-02 Причины были общими: профиль отбрасывал MP3 ниже 256/VBR-V2, лимит размера отклонял смешанные MP3-дискографии, а альбомный MissingAlbumSearch не находил пакеты по названию артиста. RSS каждые 15 минут проверяет новые публикации, но сам по себе не обеспечивает повторный поиск старых отсутствующих альбомов. @@ -297,7 +309,7 @@ Transmission ограничивал загрузки пятью слотами, - TrueNAS cronjob **4**, enabled, каждые 15 минут, пользователь `truenas_admin`; команда `/usr/bin/python3 /mnt/RED_2TB/docker/arr/lidarr-autosearch/lidarr_autosearch.py`. - До 5 артистов за запуск; берутся только monitored-артисты с отсутствующими monitored-альбомами, уже вышедшими по дате. Артисты с активной загрузкой/поиском пропускаются, flock исключает пересечение запусков. - Штатная команда `ArtistSearch` ищет дискографии и использует обычный механизм решений Lidarr. Для Various Artists используется `MissingAlbumSearch`, чтобы не искать все сборники разом. После поиска проверяются MP3-паки: общая нормализация переводит «Дискография»/«полная дискография»/«Коллекция» в Discography и распознаёт явное число ≥2 Albums/альбомов с диапазоном лет. Начальные жанровые теги и конечные псевдонимы убираются только при точном совпадении основного имени артиста. `/parse` обязан подтвердить тот же artistId, discography=true и выбранные monitored-альбомы. Затем `POST /release/push` проводит релиз через полный RSS decision engine. Если единственные отказы — `Existing files meets cutoff:` / `Existing files on disk is of equal or higher preference:`, пакет содержит реально отсутствующие вышедшие monitored-альбомы и эта раздача ещё не была grabbed, общий worker автоматически вызывает `POST /release` с исходными guid/indexerId из кеша поиска и ID отсутствующего альбома как привязкой. Это ограниченный обход блокировки частично скачанных паков; отказы по формату, качеству профиля, сидам, блоклисту и чужому артисту не обходятся. Native import распознаёт все папки альбомов внутри пакета и сохраняет свои проверки качества. За запуск принимается не более одного пака на артиста; сначала более широкий по выбранным альбомам. Персональных исключений по артистам нет. -- Повтор для того же набора отсутствующего — через 24 часа; новый набор отсутствующего или новая версия общей политики поиска допускают поиск без суточного ожидания. Текущая `SEARCH_POLICY_VERSION=2`: обновление общего правила повторно рассматривает всех подходящих артистов без ручного сброса Savant или других отдельных ID. Состояние — `state.json`, журнал — `runs.jsonl` рядом со скриптом. +- Повтор для того же набора отсутствующего — через 24 часа; новый набор отсутствующего или новая версия общей политики поиска допускают поиск без суточного ожидания. Текущая `SEARCH_POLICY_VERSION=3`: обновление общего правила повторно рассматривает всех подходящих артистов без ручного сброса отдельных ID. Состояние — `state.json`, журнал — `runs.jsonl` рядом со скриптом. - Если артист включён, `monitorNewItems=all`, а **все** существующие альбомы выключены, их monitoring восстанавливается. Частичный выбор альбомов, выключенные артисты и `monitorNewItems=none` сохраняются. Изменённые ID альбомов записываются в журнал для точного отката. - Пустой каталог сначала получает `RefreshArtist` с `artistIds=[id]` и **`isNewArtist=true`**: этот флаг ограничивает последующее сканирование папкой артиста. Без него Lidarr ставит сканирование всей `/storage/Music` даже при одном ArtistIds. diff --git a/personal/business/rf-tax-residency.md b/personal/business/rf-tax-residency.md index f978d7bf..ff5cd2b2 100755 --- a/personal/business/rf-tax-residency.md +++ b/personal/business/rf-tax-residency.md @@ -12,59 +12,32 @@ tags: - ИП в Кыргызстане, доход от иностранных IT-клиентов - Живу в Бишкеке, гражданин РФ -- Цель: **не становиться налоговым резидентом РФ по итогам календарного года** (порог — 183 дня с 1 января по 31 декабря) +- Цель: **не становиться налоговым резидентом РФ по итогам календарного года** - Пока нерезидент — доход от КР-ИП РФ не касается --- -## Въезды/выезды в РФ +## Пребывание в РФ по календарным годам -| Период | Дней | -| ----------------------- | ------- | -| 29.11.2025 → 14.03.2026 | 106 | -| 04.07.2026 → 30.08.2026 | 58 | -| 06.09.2026 → 19.09.2026 | 14 | -| 25.10.2026 → 08.11.2026 | 15 | -| 29.11.2026 → ? | план | +| Период | Дней в 2025 году | Дней в 2026 году | +| --- | ---: | ---: | +| 29.11.2025 → 14.03.2026 (106 дней всего) | 33 | 73 | +| 04.07.2026 → 30.08.2026 | — | 58 | +| 06.09.2026 → 19.09.2026 | — | 14 | +| 25.10.2026 → 08.11.2026 | — | 15 | +| **Итого по записанной истории** | **33** | **160** | -Дни въезда и выезда включены в подсчёт. Визит 25.10–08.11.2026 записан по указанным датам; на дату обновления 05.11.2026 выезд 08.11 ещё запланирован. Въезд 29.11.2026 сохранён как план и не включён в итог 160 дней. +Дни въезда и выезда включены. Для итогового годового статуса дни считаются с 1 января по 31 декабря; переходящий визит разделён между годами. Другие поездки, если они были, не учтены. ---- +[ФНС: окончательный налоговый статус определяется за календарный год](https://www.nalog.gov.ru/rn77/ip/interest/reg_ip/resident_rf/). Порог — **183 дня**; чтобы остаться ниже него, допустимо максимум **182 дня за год**. Для промежуточного определения статуса налоговым агентом в течение года применяется период из 12 последовательных месяцев. -## Подсчёт по календарным годам +## Следующий въезд с пребыванием до 31.12.2026 -Для итогового статуса за налоговый период считаем дни отдельно с **1 января по 31 декабря** каждого года. Переходящий визит делим по границе года; даты поездок в истории сохраняем полностью. +Остаток на 2026 год: **182 − 160 = 22 дня**. -**Основание:** [ФНС — определение окончательного налогового статуса за календарный год](https://www.nalog.gov.ru/rn77/ip/interest/reg_ip/resident_rf/). Для промежуточного определения статуса налоговым агентом в течение года применяется период из 12 последовательных месяцев; этот расчёт относится к итоговому годовому статусу. +**Самая ранняя дата въезда — 10.12.2026:** до 31.12.2026 включительно это ровно весь остаток, и годовой итог останется ниже порога. Условие: между последним указанным визитом и этой поездкой других дней в РФ нет. -### 2025 год — по записанной истории - -- Часть визита 29.11.2025 → 14.03.2026, приходящаяся на 2025 год: **29.11.2025 → 31.12.2025 = 33 дня**. -- **Итого по указанным поездкам: 33 дня**. Другие поездки 2025 года, если они были, здесь не учтены. - -### 2026 год — с визитом 25.10–08.11 - -- 01.01.2026 → 14.03.2026 = **73 дня** (часть визита, начавшегося 29.11.2025). -- 04.07.2026 → 30.08.2026 = **58 дней**. -- 06.09.2026 → 19.09.2026 = **14 дней**. -- 25.10.2026 → 08.11.2026 = **15 дней**. -- **Итого после выезда 08.11.2026: 160 дней**. -- На дату обновления **05.11.2026: 157 дней**; 06–08 ноября добавят ещё 3 дня при выезде по плану. -- Чтобы остаться ниже порога 183 дня, допустимо максимум **182 дня за год**: после 08.11 остаётся **22 дополнительных дня в РФ**. -- **183-й день** наступит через **23 дополнительных дня пребывания**. - -### План въезда 29.11.2026 - -При отсутствии других поездок после 08.11 и до 29.11: - -- 29.11.2026 → 20.12.2026 включительно = **22 дня**; итог за 2026 год — **182 дня**. -- **Выезд не позднее 20.12.2026 включительно** сохраняет итог ниже 183 дней, если затем до конца года больше не въезжать в РФ. -- **21.12.2026 — 183-й день** в РФ за 2026 год, порог резидентства достигнут. -- При пребывании до 31.12.2026 включительно добавятся **33 дня**, итог — **193 дня**. - -### Переход в 2027 год - -С **01.01.2027** начинается отдельный годовой счётчик. Дни 2026 года в итог за 2027 год не переносятся. Это не отменяет превышение порога за 2026 год, если оно произошло. Новый визит, переходящий через Новый год, также делится между двумя календарными годами. +С 01.01.2027 начинается отдельный годовой счётчик; дальнейшие дни этого визита относятся к 2027 году. --- @@ -82,11 +55,3 @@ tags: 2. Подать **3-НДФЛ** в РФ, указать доход от КР-ИП, сослаться на СИДН (ст. 7 — предпринимательская деятельность) 3. Приложить: сертификат резидентства КР, квитанции об уплате налога в КР, контракты 4. Налог уплаченный в КР засчитывается — доплачивается только разница (КР ~4–6%, РФ 13%) - ---- - -## Вывод / план - -- **После визита 25.10–08.11.2026:** 160 дней в РФ за 2026 год; при отсутствии дальнейших поездок итог будет ниже порога 183 дня. -- **План въезда 29.11.2026:** выехать не позднее **20.12.2026 включительно**, затем не въезжать до конца года — итог **182 дня**. Пребывание 21.12 доведёт итог до **183 дней**. -- **Принцип:** сохранять полную историю въездов/выездов и отдельно суммировать дни каждого календарного года; окончательный статус за 2026 год определяется по итогам года.