feat(app): add semantic Version constant 0.1.0
Add exported constant app.Version in major.minor.patch format (0.1.0) with documentation of the manual increment process (when to bump patch/minor/major). Include the version in the /help command reply and add tests verifying the semver format and the version presence in help text.
This commit is contained in:
@@ -30,6 +30,27 @@ import (
|
||||
// создателем токена read:package (kamelion). Не требует конфигурации.
|
||||
const packageOwner = "kamelion"
|
||||
|
||||
// Version — семантический номер версии приложения в формате major.minor.patch
|
||||
// (например "0.1.0"). Меняется вручную при выпуске новых изменений; НЕ должен
|
||||
// вшиваться ldflag'ом или генерироваться автоматически.
|
||||
//
|
||||
// Правила ручного инкремента (когда и какую часть номера увеличивать):
|
||||
// - patch (0.1.0 → 0.1.1): исправление багов и мелкие правки, новая
|
||||
// функциональность не добавляется (обратно-совместимые изменения).
|
||||
// - minor (0.1.0 → 0.2.0): появляется новая (обратно-совместимая)
|
||||
// функциональность; patch при этом сбрасывается в 0.
|
||||
// - major (0.1.0 → 1.0.0): несовместимые изменения API/поведения или крупные
|
||||
// релизы; minor и patch сбрасываются в 0.
|
||||
//
|
||||
// Пока продукт не стабилен, major держим на 0 → версии идут 0.x.y
|
||||
// (минорные правки с повышением minor, исправления — с повышением patch).
|
||||
//
|
||||
// ВАЖНО: это СЕМАНТИЧЕСКАЯ версия приложения (для людей и диагностики), её
|
||||
// не следует путать с build-идентификатором `main.version` (commit-<sha7>),
|
||||
// который вшивается ldflag'ом и используется автообновлением. Здесь номер
|
||||
// поднимается вручную перед каждым релизом/публикацией новой сборки.
|
||||
const Version = "0.1.0"
|
||||
|
||||
// App — собранный конвейер.
|
||||
type App struct {
|
||||
Config *config.Config
|
||||
@@ -391,23 +412,26 @@ func (a *App) handleBinaryCommand(ctx context.Context, uid chat.UserID, text str
|
||||
}
|
||||
}
|
||||
|
||||
// helpText — текст команды /help.
|
||||
const helpText = "⚡ **Ratatoskr** — помогу продумать задачу и запущу агента.\n\n" +
|
||||
"**Команды:**\n" +
|
||||
"`/start` — новая задача\n" +
|
||||
"`/cancel` — отменить текущую\n" +
|
||||
"`/skip` — хватит вопросов, предложить черновик\n" +
|
||||
"`/retry N` — перезапустить задачу `N`\n" +
|
||||
"`/status N` — статус задачи `N`\n" +
|
||||
"`/continue N` — продолжить задачу `N`\n" +
|
||||
"`/status` — статус бинаря и обновления\n" +
|
||||
"`/update` — применить обновление\n" +
|
||||
"`/help` — эта справка\n\n" +
|
||||
"Просто опишите задачу — я помогу её продумать."
|
||||
// helpTextFor — полный текст команды /help с номером версии приложения.
|
||||
func helpTextFor(version string) string {
|
||||
return "⚡ **Ratatoskr** — помогу продумать задачу и запущу агента.\n\n" +
|
||||
"**Команды:**\n" +
|
||||
"`/start` — новая задача\n" +
|
||||
"`/cancel` — отменить текущую\n" +
|
||||
"`/skip` — хватит вопросов, предложить черновик\n" +
|
||||
"`/retry N` — перезапустить задачу `N`\n" +
|
||||
"`/status N` — статус задачи `N`\n" +
|
||||
"`/continue N` — продолжить задачу `N`\n" +
|
||||
"`/status` — статус бинаря и обновления\n" +
|
||||
"`/update` — применить обновление\n" +
|
||||
"`/help` — эта справка\n\n" +
|
||||
"Версия: " + version + "\n\n" +
|
||||
"Просто опишите задачу — я помогу её продумать."
|
||||
}
|
||||
|
||||
// handleHelpCmd отвечает списком команд.
|
||||
// handleHelpCmd отвечает списком команд и номером версии приложения.
|
||||
func (a *App) handleHelpCmd(ctx context.Context, uid chat.UserID) {
|
||||
a.send(ctx, uid, helpText)
|
||||
a.send(ctx, uid, helpTextFor(Version))
|
||||
}
|
||||
|
||||
// handleStatusCmd отвечает текущей версией и результатом последней проверки.
|
||||
|
||||
Reference in New Issue
Block a user