[2026-11-05] eagle: family/how-to/arr-stack-taiga.md personal/business/rf-tax-residency.md

This commit is contained in:
Alexey Martemyanov committed 2026-11-05 11:33:27 +06:00
1 parent dcdb7bb937
commit fe58a9d60b
2 files changed
+28 -51

No files matched your search

+13 -1
View File
@@ -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.
+15 -50
View File
@@ -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 год определяется по итогам года.