• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

radio-t / super-bot / 35791385597
77%

Build:
DEFAULT BRANCH: master
Ran 22 Sep 2026 10:16PM UTC
Jobs 1
Files 38
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Sep 2026 10:15PM UTC coverage: 77.195% (+2.1%) from 75.118%
35791385597

push

github

web-flow
Gate unsolicited OpenAI replies with jev, add gpt-6 reasoning model support (#165)

* feat(openai): treat gpt-6 models as reasoning models, add involvement gate plan

- match the gpt-6 family in isReasoningModel; gpt-6-luna rejects max_tokens
- pin gpt-6-luna and gpt-5.6-luna reasoning request rows in tests
- log the telegram listener error directly; Do never returns nil (SA4023)
- add docs/plans/20260922-ai-involvement-gate.md

* fix(openai): keep idle ticks and private chats out of history

- record history only for group messages (ChatID < 0)
- skip unsolicited replies for non-group messages
- drop the history tail only when the current message was recorded

* feat(jev): add typesafe jev client for noul questions

- one attempt per call, own http client with timeout, redirects disabled
- strict noul validation: missing and null answers are errors
- sanitized error reporting drops echoed request state

* feat(openai): build structured history snapshot for chat requests

- snapshot takes the current message explicitly and keeps only its chat
- entries carry author labels, time, reply quotes and media markers
- 30-minute age limit, 1000/8000 rune caps; current text never truncated
- both history-based request builders use the snapshot

* feat(openai): gate unsolicited replies with jev

- three noul questions (invites, answerable, spam) with an explicit spam veto
- any jev error, missing answer or oversized message means no reply
- 15-minute cooldown, 10 replies a day, 150 jev calls per clock hour
- requests-only prompt; replies thread to the triggering message
- remove the '?' rule and the random reply roll

* feat: wire jev gate config, redact secrets from debug options dump

- add jev flag group (key, model, timeout); empty key disables unsolicited replies
- reject a non-positive jev timeout at startup
- clear all tokens and the jev key from the debug options dump
- remove the history reply probability flag; history size defaults to 10

* test(opena... (continued)

377 of 395 new or added lines in 5 files covered. (95.44%)

3016 of 3907 relevant lines covered (77.19%)

71.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
9.05
9.05% app/main.go
1
99.21
-0.79% app/bot/openai/openaihistory.go
Jobs
ID Job ID Ran Files Coverage
1 35791385597.1 22 Sep 2026 10:16PM UTC 38
77.19
GitHub Action Run
Source Files on build 35791385597
  • Tree
  • List 38
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • e98e4ac4 on github
  • Prev Build on master (#32318251401)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc