feat(line): add StartTyping and PlaceholderRecorder integration#811
Merged
alexhoshina merged 2 commits intosipeed:refactor/channel-systemfrom Feb 26, 2026
Merged
Conversation
Implement TypingCapable interface for LINE channel using the loading animation API (1:1 chats only, no group support). - Add StartTyping() with 50s periodic refresh and context-based stop - Integrate PlaceholderRecorder.RecordTypingStop in processEvent - Skip RecordPlaceholder (LINE has no message edit API) - Change sendLoading to accept context and return error - Relax callAPI status check from 200 to 2xx range Design consulted with Codex (GPT-5.2). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 tasks
alexhoshina
requested changes
Feb 26, 2026
pkg/channels/line/line.go
Outdated
| case <-typingCtx.Done(): | ||
| return | ||
| case <-ticker.C: | ||
| _ = c.sendLoading(typingCtx, chatID) |
Collaborator
There was a problem hiding this comment.
The error here was discarded; there should at least be a log record
Address review feedback from @alexhoshina and Codex: - Log sendLoading errors in ticker goroutine instead of discarding - Only start typing indicator when PlaceholderRecorder is available to avoid wasted API calls and unnecessary goroutine creation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
@alexhoshina Thanks for the review! Fixed:
Ready for re-review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TypingCapableinterface for LINE channel using the loading animation API (1:1 chats only)PlaceholderRecorder.RecordTypingStopinprocessEventfor Manager coordinationRecordPlaceholder— LINE has no message edit API, so placeholder messages would be uneditablecallAPIstatus check from200to2xxrange (loading API may return202)LINE API constraints
StartTyping()with 50s refreshChanges
StartTyping()— new method, periodic 50s refresh goroutine, context-cancel to stopsendLoading()— now acceptscontext.Contextand returnserrorprocessEvent()— replaced directsendLoadingcall withStartTyping+PlaceholderRecorderintegrationcallAPI()—200check relaxed to2xxSplit from #728 per @alexhoshina's request to keep that PR focused on MediaStore.
Test plan
🤖 Generated with Claude Code