Skip to content

Исправлено обращение с настройками удаленных зеркал - #273

Open
EvilBeaver wants to merge 4 commits into
developfrom
feature/settings-fixes
Open

Исправлено обращение с настройками удаленных зеркал#273
EvilBeaver wants to merge 4 commits into
developfrom
feature/settings-fixes

Conversation

@EvilBeaver

@EvilBeaver EvilBeaver commented Aug 5, 2026

Copy link
Copy Markdown
Member

Также добавлены правила для агентов

Summary by CodeRabbit

  • Новые возможности

    • При публикации пакетов автоматически используется основной сервер пакетов по умолчанию.
    • Поддерживается настройка порта сервера: используется заданное значение либо стандартный порт для HTTPS или HTTP.
    • Публикация учитывает настроенный интернет-прокси.
  • Исправления

    • Убрано принудительное назначение порта 80 для серверов пакетов, благодаря чему корректно поддерживаются серверы с другими портами и протоколами.
  • Документация

    • Добавлены рекомендации по структуре проекта, работе с CLI-командами, тестированию и выпуску изменений.

@EvilBeaver
EvilBeaver requested review from nixel2007 and sfaqer August 5, 2026 10:17
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8c0bc581-4fb9-4dfa-a94b-265a4063e8c8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

Изменения добавляют инструкции для AI-агентов и обновляют публикацию пакетов. Порт сервера теперь необязателен в настройках. Команда push определяет порт по настройке или схеме URL и передаёт параметры прокси.

Changes

Руководство репозитория

Layer / File(s) Summary
Правила и архитектура репозитория
.cursor/rules/agent-workflow.mdc, AGENTS.md
Добавлены правила работы AI-агентов, описание архитектуры, команд разработки, тестирования и публикации.

Порты серверов пакетов

Layer / File(s) Summary
Необязательные порты в настройках
src/cmd/Модули/ПараметрыПриложенияOpm.os, src/core/Модули/НастройкиOpm.os
Для отсутствующего порта сохраняется Неопределено. Стандартные серверы больше не получают порт 80 автоматически.
Публикация через настроенный порт
src/cmd/Классы/КомандаOpm_Push.os
Значение mirror по умолчанию изменено на ОсновнойСерверПакетов. Команда определяет порт по настройке или схеме сервера и передаёт параметры интернет-прокси в HTTP-соединение.

Estimated code review effort: 3 (Moderate) | ~20 минут

Sequence Diagram(s)

sequenceDiagram
  participant Пользователь
  participant КомандаOpm_Push
  participant НастройкиСерверов
  participant HTTPСоединение

  Пользователь->>КомандаOpm_Push: запускает публикацию пакета
  КомандаOpm_Push->>НастройкиСерверов: получает выбранный сервер и порт
  КомандаOpm_Push->>КомандаOpm_Push: определяет порт по схеме при отсутствии значения
  КомандаOpm_Push->>HTTPСоединение: создаёт соединение с портом и прокси
  HTTPСоединение-->>КомандаOpm_Push: отправляет пакет
Loading

Possibly related PRs

  • oscript-library/opm#245: Изменения также убирают принудительный порт 80 и передают необязательный порт в соединение.

Suggested reviewers: nixel2007, sfaqer

Poem

Я, кролик, порт в настройках нашёл,
Где нет числа — Неопределено пришло.
По схеме HTTPS выбрал 443,
Прокси добавил — и пакет отпустил.
Пуш работает, сервер готов —
Морковный релиз без лишних портов!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно описывает основное изменение: исправление обработки настроек удаленных зеркал в CLI-команде push.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/settings-fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@EvilBeaver

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.cursor/rules/agent-workflow.mdc:
- Line 13: Обновите пользовательский README.md, добавив описание изменённого
публичного поведения команды push: выбора зеркала и порта. Убедитесь, что
документация отражает фактическое поведение CLI.

In `@AGENTS.md`:
- Line 32: Update the fenced blocks in AGENTS.md at the locations corresponding
to lines 32 and 57 to specify the text language on their opening fences, without
changing the ASCII diagram contents.
- Around line 230-231: Обновите раздел о конфигурации и зеркалах в AGENTS.md,
зафиксировав контракт необязательного порта зеркала: при отсутствии порт
сохраняется как Неопределено, а при установлении соединения выбирается порт из
настройки либо корректное значение по умолчанию. Не делайте порт обязательным и
не подставляйте значение раньше этапа подключения.
- Line 156: Исправьте пример в разделе о пользовательских строках: в синтаксисе
НСтр добавьте закрывающую кавычку перед закрывающей скобкой, чтобы пример
соответствовал формату НСтр("ru='...';en='...'") и корректно копировался в BSL.

In `@src/cmd/Классы/КомандаOpm_Push.os`:
- Around line 174-181: Добавьте или обновите ближайшие unit- или BDD-тесты для
контракта необязательного порта: в src/cmd/Классы/КомандаOpm_Push.os:174-181
проверьте явный порт, значения 80 и 443, а также применение прокси; в
src/cmd/Модули/ПараметрыПриложенияOpm.os:62-67 проверьте сохранение Неопределено
при отсутствии поля Порт; в src/core/Модули/НастройкиOpm.os:106-106 проверьте
значение порта по умолчанию; в src/core/Модули/НастройкиOpm.os:124-125 проверьте
встроенные серверы без явно заданного порта.
- Around line 138-140: В функции ПортПоУмолчанию обновите проверку Сервер так,
чтобы порт 443 выбирался только для URL со схемой https://, а не для любого
значения, начинающегося с https; используйте именно этот символ проверки в
выражении с СтрНачинаетсяС и сохраните текущий возврат 80 для всех остальных
адресов, включая хосты вроде https-mirror.example.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 03b21bf1-1608-4207-bf6b-ecba77f8f667

📥 Commits

Reviewing files that changed from the base of the PR and between 24fbfd4 and daad275.

📒 Files selected for processing (5)
  • .cursor/rules/agent-workflow.mdc
  • AGENTS.md
  • src/cmd/Классы/КомандаOpm_Push.os
  • src/cmd/Модули/ПараметрыПриложенияOpm.os
  • src/core/Модули/НастройкиOpm.os

- После существенных правок ядра/CLI — запускай релевантные тесты (`tasks/test.os` или узкий сценарий).
- Коммиты и push — только по явной просьбе пользователя.
- Не коммить секреты (`GITHUB_OAUTH_TOKEN`, `opm.cfg` с токенами/прокси).
- Пользовательский `README.md` обновляй, если меняется публичное поведение CLI.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Добавьте обновление README.md в этот PR.

Сводка PR описывает изменение публичного поведения push: выбора зеркала и порта. В списке изменённых файлов из контекста README.md отсутствует. Добавьте описание этого поведения, чтобы пользовательская документация соответствовала CLI.

Основание: правило в этой строке требует обновлять README.md при изменении публичного поведения CLI, а PR меняет поведение push.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.cursor/rules/agent-workflow.mdc at line 13, Обновите пользовательский
README.md, добавив описание изменённого публичного поведения команды push:
выбора зеркала и порта. Убедитесь, что документация отражает фактическое
поведение CLI.

Comment thread AGENTS.md

## Структура репозитория

```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Укажите язык для fenced-блоков.

markdownlint-cli2 сообщает MD040 для строк 32 и 57. Добавьте text к открывающим fence-блокам. Содержимое ASCII-схем не изменится.

Основание: предупреждение MD040 указано статическим анализом.

Also applies to: 57-57

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 32-32: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@AGENTS.md` at line 32, Update the fenced blocks in AGENTS.md at the locations
corresponding to lines 32 and 57 to specify the text language on their opening
fences, without changing the ASCII diagram contents.

Source: Linters/SAST tools

Comment thread AGENTS.md
## Соглашения по коду

1. **Русский BSL** — имена процедур, переменных, каталогов `Классы/` / `Модули/`.
2. Пользовательские строки — через `НСтр("ru='...';en='...')`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Исправьте синтаксис примера НСтр.

В строке 156 отсутствует закрывающая кавычка перед ). Пример нельзя корректно скопировать в BSL.

Исправление
-2. Пользовательские строки — через `НСтр("ru='...';en='...')`.
+2. Пользовательские строки — через `НСтр("ru='...';en='...'")`.

As per coding guidelines: пользовательские строки должны оформляться через НСтр("ru='...';en='...'").

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. Пользовательские строки — через `НСтр("ru='...';en='...')`.
2. Пользовательские строки — через `НСтр("ru='...';en='...'")`.
🧰 Tools
🪛 LanguageTool

[typographical] ~156-~156: Непарный символ: «"» скорей всего пропущен
Context: ...и/. 2. Пользовательские строки — через НСтр("ru='...';en='...')`. 3. Модули = статиче...

(RU_UNPAIRED_BRACKETS)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@AGENTS.md` at line 156, Исправьте пример в разделе о пользовательских
строках: в синтаксисе НСтр добавьте закрывающую кавычку перед закрывающей
скобкой, чтобы пример соответствовал формату НСтр("ru='...';en='...'") и
корректно копировался в BSL.

Sources: Coding guidelines, Linters/SAST tools

Comment thread AGENTS.md
Comment on lines +230 to +231
9. На Linux пользовательский конфиг — **`.opm.cfg`** (с точкой); на Windows — `opm.cfg` в `%USERPROFILE%`. Приоритет: cwd → user → system → каталог opm.
10. Хабы по умолчанию — **http**, не https.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Зафиксируйте контракт необязательного порта зеркала.

В руководстве перечислены конфигурация и зеркала, но не описано новое поведение порта. Укажите, что отсутствующий порт сохраняется как Неопределено, а соединение выбирает значение из настройки или корректное значение по умолчанию. Иначе агент может снова считать порт обязательным или подставить значение слишком рано.

Основание: сводка PR и контекст слоя фиксируют необязательный порт и выбор порта при подключении.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@AGENTS.md` around lines 230 - 231, Обновите раздел о конфигурации и зеркалах
в AGENTS.md, зафиксировав контракт необязательного порта зеркала: при отсутствии
порт сохраняется как Неопределено, а при установлении соединения выбирается порт
из настройки либо корректное значение по умолчанию. Не делайте порт обязательным
и не подставляйте значение раньше этапа подключения.

Comment thread src/cmd/Классы/КомандаOpm_Push.os Outdated
Comment on lines +174 to +181
Порт = ?(Порт = Неопределено, ПортПоУмолчанию(Сервер), Порт);
Настройки = НастройкиOpm.ПолучитьНастройки();
Если Настройки.ИспользоватьПрокси Тогда
НастройкиПрокси = НастройкиOpm.ПолучитьИнтернетПрокси();
Соединение = Новый HTTPСоединение(Сервер, Порт, , , НастройкиПрокси);
Иначе
Соединение = Новый HTTPСоединение(Сервер, Порт);
КонецЕсли;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Добавьте тесты для контракта необязательного порта.

Изменённая логика должна иметь unit- или BDD-тест. Проверьте порт из конфигурации, отсутствие порта для HTTP и HTTPS, а также применение прокси при публикации.

  • src/cmd/Классы/КомандаOpm_Push.os#L174-L181: проверьте создание соединения с явным портом, портом 80 и портом 443.
  • src/cmd/Модули/ПараметрыПриложенияOpm.os#L62-L67: проверьте сохранение Неопределено, когда поле Порт отсутствует.
  • src/core/Модули/НастройкиOpm.os#L106-L106: проверьте значение по умолчанию параметра Порт.
  • src/core/Модули/НастройкиOpm.os#L124-L125: проверьте встроенные серверы без явно заданного порта.

As per coding guidelines, «При изменении логики добавлять или обновлять ближайший unit- или BDD-тест в соответствующей области».

📍 Affects 3 files
  • src/cmd/Классы/КомандаOpm_Push.os#L174-L181 (this comment)
  • src/cmd/Модули/ПараметрыПриложенияOpm.os#L62-L67
  • src/core/Модули/НастройкиOpm.os#L106-L106
  • src/core/Модули/НастройкиOpm.os#L124-L125
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/cmd/Классы/КомандаOpm_Push.os` around lines 174 - 181, Добавьте или
обновите ближайшие unit- или BDD-тесты для контракта необязательного порта: в
src/cmd/Классы/КомандаOpm_Push.os:174-181 проверьте явный порт, значения 80 и
443, а также применение прокси; в src/cmd/Модули/ПараметрыПриложенияOpm.os:62-67
проверьте сохранение Неопределено при отсутствии поля Порт; в
src/core/Модули/НастройкиOpm.os:106-106 проверьте значение порта по умолчанию; в
src/core/Модули/НастройкиOpm.os:124-125 проверьте встроенные серверы без явно
заданного порта.

Sources: Coding guidelines, Learnings

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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.

1 participant