Repository navigation
fix(server): use the Discord thread URL on Jira replies - #590
Open
omegent-app[bot] wants to merge 30 commits into
Open
omegent-app[bot] wants to merge 30 commits into
omegent-app[bot] wants to merge 30 commits into
Conversation
Reconstruct the ci-release-tooling-docs portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Andrea Simone Costa <24520167+jfet97@users.noreply.github.com> Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the vendored-dependencies portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the shared-contracts-runtime portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Andrea Simone Costa <24520167+jfet97@users.noreply.github.com> Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the identity-attribution portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the providers-runtime portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the orchestration-taskqueue portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the git-pull-requests portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the environments-preview-devices portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the desktop-editor portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the web portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the mobile portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
Reconstruct the bots-integrations portion of the preserved fork snapshot 38d3b97. Mixed-purpose files stay with their dominant area; the completed series preserves the exact snapshot tree. Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com> Co-authored-by: Patrick Roza <contact@patrickroza.com> Model: gpt-6.1-sol; harness: Codex in T3 Code.
A follow-up Teams message left a second Stop card under the same Working line, and an agent attachment caption was posted back into that thread as the person who owns it. The live bridge updates Working through the transport that started the turn, while each new Teams message posts from a fresh transport. That update dropped the Stop id saved by the other transport and posted another card. Updates now keep the Stop recorded in the shared ledger, and a missing card is removed before a replacement is posted. Agent MCP sends, including attachment captions, stay internal. A person typing in another client still echoes, and pull-request watches without a notification still echo. Release smoke regenerates the lockfile. expo-modules-core stays at 58.0.22 so the Android layout patch still applies. Focused tests: Teams transport (14) and ResponseBridge echo filter (202). Draft push ran the changed-file check and workspace typecheck. opened by [Patrick Roza](https://discord.com/users/95218063095377920) in chat thread **Discord** · [Discord](https://discord.com/channels/1083767712431480922/1562053102058610808/1562053102058610808) · [T3](https://omega.omegent.com/?thread=a09fd834-7b3a-4361-bb37-878d5e476ebb) --------- Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
New Discord and Teams threads always opened a worktree from `main` and fetched it, ignoring the workspace, base branch, and start-from-remote settings the composer already uses. On this fork that lands on `origin/main`, which has no Discord bot. A new thread now uses the same chain as the composer: the project override, then the environment, then `t3.json`, then the built-in checkout. A worktree branches from the repository default branch, and **Start from remote** follows the project setting. `--local` and `--base` still override one turn. A Teams workspace can still pin a base. The bot no longer reads `T3_DEFAULT_BASE_BRANCH`. Focused tests: workspace resolution (17), linked-turn launch (1), config (13), and the channel pin (7). Discord bot typecheck passed. Draft until the full ship gate. Model: grok-4.7; harness: Grok in T3 Code. opened by [Patrick Roza](https://discord.com/users/95218063095377920) in chat thread **Discord** · [Discord](https://discord.com/channels/1083767712431480922/1562338788687224883/1562338788687224883) · [T3](https://omega.omegent.com/?thread=bcef1bee-0c81-48f8-826d-0713dc0b1cfa) Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Joshua Dimaunahan <170177550+MindfulLearner@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
Merge 79 upstream commits since d36b7da, including the mobile update-checker fix for the iOS NativeEventEmitter startup crash. Preserve fork product behavior and regression coverage while adapting retained tests to upstream's disposable fixtures and test cleanup. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include the project workspace selection fix landed during this sync. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Dispose the retained PR panel fixture without returning Vitest utilities. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Use disposable browser rendering and persisted-event milestones in retained web and Discord tests. Keep the compiler project ceiling for the full ChatView compilation proof. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Await fork worktree cleanup before returning the upstream archive result, so rejected or active-run requests remain false and successful archives remain true. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include the two new upstream fixes for delegate Stop cleanup and project icons on thread-link chips. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Retain the Claude SDK probe fixture, update explicit upstream-ledger assertions for migration 67, and seed canonical unattributed thread metadata in the transfer fixture. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include approval-aware composer editing and redirect sends on web and mobile while preserving fresh fork draft snapshots, queues, and context attachments. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include delegate settlement and Grok command completion fixes, per-provider replay fixtures, and cached Electron installation. Preserve fork background-task behavior and host runtime targeting. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include leaner cross-platform installs, cached package typechecks, provider test environment isolation, storage cleanup accounting, and iOS simulator AVC decoding. The sync now includes 92 upstream commits since d36b7da; preserve fork test isolation and development state safeguards. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Include desktop script tests in its isolated project so root Vite test routing keeps the launcher regressions. Apply the upgraded formatter to upstream documentation snippets. Model: gpt-6.1-sol; harness: Codex in T3 Code.
Merge upstream main through 618761a
Mid-turn Discord follow-ups queued by default, and `/omegent steernow` was how you injected them. A mention during a running turn now steers into that turn. Park one follow-up with `@Omegent --queue` or `/omegent queue`. Put `omegent-queue` in the channel topic to park every follow-up there. `--steer` still injects on a queue-tagged channel. A parked prompt starts when the turn ends, and deleting the message cancels it. `/omegent steernow` is removed. Model: grok-4.7; harness: Grok in T3 Code. opened by [Patrick Roza](https://discord.com/users/95218063095377920) in chat thread **Discord** · [Discord](https://discord.com/channels/1083767712431480922/1561996181201227817/1561996181201227817) · [T3](https://omega.omegent.com/?thread=c2aa8e90-965f-42c2-a1e3-24e0a57f58d6) Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Sentry posts in a channel were ignored, because the bot skips other bots and webhooks. Add the channel topic tag `omegent-monitor`. The first Sentry post for an issue opens a thread and starts an investigation. The reply starts with `severity: bug` or `severity: transient`. A bug is investigated and a fix is prepared as a pull request. A transient alert does not change code, and the finished reply mentions @everyone. A later post for that same Sentry issue does not open another investigation. The channel reply is only a link to the existing thread, plus the button "start a new thread here anyway". The channel still needs its project tag (`omegent-link-<shortName>`). The bot role needs Mention Everyone for the transient ping to notify the channel. opened by [Patrick Roza](https://discord.com/users/95218063095377920) in chat thread **Discord** · [Discord](https://discord.com/channels/1083767712431480922/1562338297664114729/1562338297664114729) · [T3](https://omega.omegent.com/?thread=ca035eb9-4005-4342-b6d4-f71a46af5e26) Grok 4.7, Grok harness --------- Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
A new Bug in a configured Jira space was invisible unless someone wrote `@omegent` in a comment. Public bug text also has to stay data, because the reporter is outside the team. When a Bug is created in a space named by `T3CODE_JIRA_PROJECT_MAP` (for example SA or CFG), T3 starts a review. The summary and description are fenced as an untrusted report. Nothing in that report is run. The analysis and the proposed fix are commented on the Jira issue, and those comments mention the mapped team (people with a Jira account id). A review that stops before an analysis leaves a short note and does not mention the team. Nothing from this flow is posted to Discord. Sentry monitoring stays a separate Discord feature. ## Jira change, start to finish Comment mentions already arrive from Jira Automation as `comment_created` and `comment_updated`. A new bug does not. Add one rule. Leave the comment rules in place, and leave their `webhookEvent` set to `comment_created` or `comment_updated`. Do this after the server build that contains this PR is deployed. A delivery sent before that build is ignored and is not replayed. 1. Open **Jira settings → System → Global automation** on `macs-holding.atlassian.net`. One global rule covers every configured space. Project automation would need the same rule once per space. 2. Create a rule named **Omegent: bug created**. 3. Scope it to the configured spaces only. Today that is **SA** and **CFG**. A space counts only when it is in `T3CODE_JIRA_PROJECT_MAP` and, if `T3CODE_JIRA_ALLOWED_PROJECTS` is set, in that list too. Add a space to the rule only when you add it there. 4. Trigger: **Work item created** (Issue created). Do not use Work item updated, Comment created, or Assign. Those stay on their own rules. 5. Condition: **Issue type equals Bug**. The type name must be Bug. A Story, Task, or another type is ignored. The server checks the same thing. 6. Action: **Send web request**. - Web request URL: the same URL as the comment rules, `https://omega.omegent.com/api/jira/webhook` - HTTP method: **POST** - Web request body: **Custom data**. Do not use Issue data (Automation format). That shape is not an issue-created webhook. - Headers: copy them from a comment rule. The server accepts either `Authorization: Bearer <secret>` or `X-T3-Webhook-Secret: <secret>`. The value is `T3CODE_JIRA_WEBHOOK_SECRET`. Also send `Content-Type: application/json`. Do not put the secret in git or in a screenshot of the audit log. - Custom data: paste the template below. Every text field uses `.asJsonString`, which includes the JSON quotes and escapes newlines and quotes. A raw `{{issue.description}}` inside quotes breaks the body, and the server then drops the delivery as invalid JSON. 7. Turn the rule **on**. ```json { "webhookEvent": "jira:issue_created", "issue_event_type_name": "issue_created", "user": { "accountId": {{initiator.accountId.asJsonString}}, "displayName": {{initiator.displayName.asJsonString}} }, "issue": { "id": "{{issue.id}}", "key": {{issue.key.asJsonString}}, "self": "https://macs-holding.atlassian.net/rest/api/3/issue/{{issue.id}}", "fields": { "summary": {{issue.summary.asJsonString}}, "description": {{#if(issue.description)}}{{issue.description.asJsonString}}{{else}}""{{/}}, "issuetype": { "name": {{issue.issueType.name.asJsonString}} }, "project": { "key": {{issue.project.key.asJsonString}} }, "reporter": { "accountId": {{issue.reporter.accountId.asJsonString}}, "displayName": {{issue.reporter.displayName.asJsonString}} } } } } ``` `self` has to be that REST issue address. The server turns it into the browse link. `webhookEvent` has to be `jira:issue_created` (or `issue_created`). A comment rule that also carries `issue_event_type_name: issue_created` stays a comment, as long as its own `webhookEvent` is still `comment_created` or `comment_updated`. Bugs filed by `T3CODE_JIRA_BOT_ACCOUNT_ID` are skipped, so the bot cannot review a bug it filed itself. A review comment does not create an issue, so it does not start this rule again. The same issue id is delivered once. Editing the bug later does not start another review. Check, in order: 1. In the rule audit log, the web request returns **202**. **401** means the secret header does not match. **400** with invalid JSON means a smart value was not escaped. **404** means the Jira integration is disabled on the server. 2. File a Bug in SA as a person, with a summary and a description that contain a quote and a line break. The debug log records `accepted_202` for `jira:issue_created`. The issue later gets the analysis comment, then the fix comment. Both mention the mapped team. 3. File a Story in SA. The log records `ignored_202` with reason `not_bug:story`. No review starts. 4. File a Bug in a project that is not in the map. The log records `project_denied_202`. No review starts. 5. Mention the bot on an existing issue. That comment rule still runs, and the reply is still threaded under the mention. The same steps are in `docs/user/jira-issue-conversations.md` under **Turn it on in Jira**. opened by [Patrick Roza](https://discord.com/users/95218063095377920) in chat thread **Discord** · [Discord](https://discord.com/channels/1083767712431480922/1562338297664114729/1562338297664114729) · [T3](https://omega.omegent.com/?thread=ca035eb9-4005-4342-b6d4-f71a46af5e26) Grok 4.7, Grok harness --------- Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
Jira comments linked the hosted app path
/threads/{environment}/{thread}. Discord and Teams already post
{T3_WEB_UI_BASE_URL}/?thread={id}. Jira now posts that same URL as
[Open](url). When the server has no T3_WEB_UI_BASE_URL, the reply has
no thread link.
Discord, Teams, and Jira share one URL builder.
Grok 4.7, Grok harness
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
This branch has not been deployed
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.
Jira replies linked
https://app.t3.codes/threads/{environment}/{thread}. Discord and Teams already post{T3_WEB_UI_BASE_URL}/?thread={id}.Jira now posts that same URL as
[Open](url). Discord, Teams, and Jira share one builder. When the server has noT3_WEB_UI_BASE_URL, the reply has no thread link.The running server does not have
T3_WEB_UI_BASE_URLyet. Set it to the same value as the bot (https://omega.omegent.com) before this build answers Jira.opened by Patrick Roza in chat thread Discord · Discord