Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds project-scoped lifecycle hooks that run at session start/stop, plus a new .packageScript run-profile type that surfaces package.json/deno.json tasks via the detected package manager (npm/yarn/pnpm/bun/deno). Hook output is rendered inline as tool-style cards, and start-hook stdout is injected into the agent's context. Also includes a Briefing "Show more/less" thread list, a new User Manual section, and a CI tweak.
Changes:
- New
HookProfile/HookTriggermodel,HookServicerunner,AppState+Hooks, and persistence; wired intoAppState+CrossProject(start) andAppState+Stream/.result(stop). New desktop UI:HooksSettingsSection,HookConfigurationsView,HookProfileDetailForm, sharedBashEnvironmentEditor. - New
PackageRunConfig/PackageManagerand.packageScriptRunProfileType; detector now infers the package manager from lockfiles, readsdenotasks, and probes installed managers. Run-profile UIs (desktop and mobile) gain a "Package" section. - Briefing thread list collapsed to 5 with a Show more/less toggle; user manual gets a Hooks page (EN+zh-CN); CI workflow trigger broadened.
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Packages/Sources/RxCodeCore/Models/HookProfile.swift | New hook model + trigger enum. |
| Packages/Sources/RxCodeCore/Models/PackageRunConfig.swift | New package-manager model and config. |
| Packages/Sources/RxCodeCore/Models/RunProfile.swift | Adds .packageScript case and package field. |
| Packages/Sources/RxCodeCore/RunProfile/RunTaskExecutor.swift | Emits package-script wrapper lines. |
| Packages/Sources/RxCodeCore/RunProfile/DetectedRunnable.swift | Carries optional PackageRunConfig for detected scripts. |
| Packages/Sources/RxCodeChatKit/ToolResultView.swift | Renders Hook: tool calls as cards. |
| Packages/Tests/RxCodeCoreTests/RunTaskExecutorTests.swift | Tests for package wrapper output. |
| RxCode/Services/Hooks/HookService.swift | Headless Process runner for hooks with output cap. |
| RxCode/Services/PersistenceService.swift | Hook profile load/save under hooks/. |
| RxCode/Services/RunProfile/RunProfileDetector.swift | Multi-manager script detection + install probe. |
| RxCode/App/AppState.swift | Caches hooks per project; tracks handled stop streamIds. |
| RxCode/App/AppState+Hooks.swift | Hook cache, run loop, tool-card insertion. |
| RxCode/App/AppState+CrossProject.swift | Start hooks + system-prompt injection; stop-hook firing. |
| RxCode/App/AppState+Stream.swift | Cancel-path stop-hook firing. |
| RxCode/Views/Hooks/HookConfigurationsView.swift | Modal split-pane hook editor. |
| RxCode/Views/Hooks/HookProfileDetailForm.swift | Per-hook detail form. |
| RxCode/Views/Hooks/BashEnvironmentEditor.swift | Shared env-preset editor. |
| RxCode/Views/Settings/HooksSettingsSection.swift | Settings entry-point + project picker. |
| RxCode/Views/SettingsView.swift | Inserts hooks section. |
| RxCode/Views/RunProfile/RunConfigurationsView.swift | Adds Package section + add-action. |
| RxCode/Views/RunProfile/RunProfileDetailForm.swift | Package command/script editor. |
| RxCode/Views/Sidebar/BriefingView.swift | Threads list show-more/less toggle. |
| RxCode/Views/UserManualView.swift | New "hooks" manual entry. |
| RxCodeMobile/Views/MobileRunProfileEditorView.swift | Mobile package section + script picker. |
| RxCodeMobile/Views/SessionsList.swift | Mobile add/edit support for package profiles. |
| RxCode/Resources/user_manual_hooks*.md | EN + zh-CN hooks docs. |
| RxCode/Resources/Localizable.xcstrings | New string keys. |
| .github/workflows/build.yaml | Removes branches: [main] push filter. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| release: | ||
| types: | ||
| - created |
| /// Streams whose session-stop hooks have already fired, so the `.result` | ||
| /// path and the cancel path don't double-run them for the same stream. | ||
| var stopHooksHandledStreamIds: Set<UUID> = [] |
The hooks work added saveHookProfiles/loadHookProfiles to AppStatePersistenceService but the test mock was not updated, breaking the RxCodeTests build target in CI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
🎉 This PR is included in version 1.13.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
No description provided.