Repository navigation
feat(safari): add safari send and safari watch - #238
Merged
Merged
Conversation
…rsations `safari send` sends a message to an AI SRE session (creating one when no --session-id is given) with reply-only delivery on the cli surface, so only the agent's reply-tool output comes back. --file uploads attachments (50MB pre-check) and sends the text as the leading message part; --message-file reads the text from a file or stdin; --team-id / --env-kind / --env-id pick the team and execution environment of a new session. `safari watch` streams the session as one JSON line per event (reply, settled, error), each with created_at and event_id. It reconnects with a resume cursor, de-duplicates by event_id, keeps waiting while a settle reports standing background tasks, and exits 0 once the root has settled with none and the session is idle. --since and --since-event-id resume strictly after a given event.
go-flashduty v0.15.21 is the first tagged release that carries both the session message/attachment/subscribe surface used by safari send/watch and the dedicated integration operations already on main, so both pseudo-versions collapse to the tag.
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.
Adds a terminal conversation surface for AI SRE sessions.
flashduty safari send [message]: sends withsurface=cli+delivery_mode=reply_only(only reply-tool output comes back). Creates a session when--session-idis omitted.--file(repeatable, 50MB pre-check) uploads attachments and sends the text as the leading part;--message-file <path|->;--team-id,--env-kind cloud|byoc,--env-idfor a new session. Prints{session_id, invocation_id, root_invocation_id, delivery_mode}.flashduty safari watch --session-id <id> [--root-invocation-id <id>] [--since <ms> --since-event-id <id>]: one JSON line per event (reply/settled/error, each withcreated_atandevent_id). Reconnects with a resume cursor, de-dupes by event id, keeps waiting while a settle lists standing background tasks, exits 0 when the root settled with none and the session is idle.--since-event-idrequires--since.Requires go-flashduty v0.15.21 (go-flashduty#108). main is merged in; its dedicated integration commands were on a pre-release pseudo-version of the same SDK and now share the tag. Regenerating with cligen and skilldoc produces no further changes.
Tested:
go test ./...,make check-cards, plus end-to-end against a local AI SRE with a self-hosted runner — reply-only delivery, attachment byte-exact on the runner, background task → notification round → exit 0, and re-arm resuming strictly after a given event.