Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3acd4cb
docs(plugin): add prompt and database hook specs
dcramer Jun 12, 2026
493e1cb
docs(memory): Add memory plugin specs
dcramer Jun 13, 2026
ad6218e
feat(plugin): Split plugin API scaffolding
dcramer Jun 13, 2026
76dfb0f
feat(plugin): Add plugin SQL storage migrations
dcramer Jun 13, 2026
6985b40
ref(plugin): Tighten plugin database upgrade wiring
dcramer Jun 13, 2026
a7ba0d7
fix(scheduler): Use plugin DB for heartbeat storage
dcramer Jun 14, 2026
cbf3d62
feat(plugins): Require SQL for database plugins
dcramer Jun 14, 2026
bf61fa3
fix(scheduler): Reclaim after stale SQL claims
dcramer Jun 14, 2026
72b0c4f
fix(scheduler): Run package-configured storage upgrade
dcramer Jun 14, 2026
8ab38e9
fix(plugins): Normalize upgrade plugin config
dcramer Jun 14, 2026
1ce53d7
fix(scheduler): Block tasks with malformed prompt text
dcramer Jun 14, 2026
579a6c5
feat(plugin): Tighten plugin database API
dcramer Jun 15, 2026
d480392
fix(plugin): Enforce plugin SQL ownership
dcramer Jun 15, 2026
78fec61
fix(evals): Provide scheduler SQL fixture
dcramer Jun 15, 2026
4a34724
fix(scheduler): Preserve completed SQL run slots
dcramer Jun 15, 2026
70e55fc
fix(scheduler): Avoid vendoring drizzle-kit toolchain
dcramer Jun 15, 2026
4614128
fix(scheduler): Skip corrupt SQL lookups
dcramer Jun 15, 2026
66c1c1d
fix(plugin): Trust plugin SQL migrations
dcramer Jun 15, 2026
06262cf
fix(scheduler): Require SQL store for scheduler tools
dcramer Jun 15, 2026
ab68134
fix(scheduler): Reclaim blocked SQL slots after reactivation
dcramer Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@ Co-Authored-By: (agent model name) <email>
- `specs/scheduler.md` (scheduled Junior task contract)
- `specs/plugin-heartbeat.md` (plugin heartbeat and tool hook contract)
- `specs/plugin-dispatch.md` (durable plugin agent dispatch contract)
- `specs/plugin-prompt-hooks.md` (plugin prompt contribution, turn observation, and session append state contract)
- `specs/plugin-database.md` (plugin packaged SQL migrations and ctx.db contract)
- `specs/plugin-cli.md` (future plugin-contributed host CLI command contract)
- `specs/memory-plugin/index.md` (long-term memory plugin storage, recall, passive learning, tools, visibility, and lifecycle contract)
- `specs/harness-agent.md` (agent loop and output contract)
- `specs/agent-session-resumability.md` (multi-slice agent-run resumability and timeout recovery contract)
- `specs/agent-execution.md` (agent execution rubric and completion gates)
Expand Down
6 changes: 3 additions & 3 deletions packages/docs/src/content/docs/reference/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ title: "@sentry/junior"

## Interfaces

- [AgentPluginConversations](/reference/api/interfaces/agentpluginconversations/)
- [AgentPluginConversationSummary](/reference/api/interfaces/agentpluginconversationsummary/)
- [ConversationFeed](/reference/api/interfaces/conversationfeed/)
- [ConversationReport](/reference/api/interfaces/conversationreport/)
- [ConversationRunReport](/reference/api/interfaces/conversationrunreport/)
Expand All @@ -23,6 +21,8 @@ title: "@sentry/junior"
- [JuniorPluginSetOptions](/reference/api/interfaces/juniorpluginsetoptions/)
- [JuniorReporting](/reference/api/interfaces/juniorreporting/)
- [JuniorVercelConfigOptions](/reference/api/interfaces/juniorvercelconfigoptions/)
- [PluginConversations](/reference/api/interfaces/pluginconversations/)
- [PluginConversationSummary](/reference/api/interfaces/pluginconversationsummary/)
- [PluginOperationalReport](/reference/api/interfaces/pluginoperationalreport/)
- [PluginOperationalReportFeed](/reference/api/interfaces/pluginoperationalreportfeed/)
- [PluginPackageContentItemReport](/reference/api/interfaces/pluginpackagecontentitemreport/)
Expand All @@ -36,10 +36,10 @@ title: "@sentry/junior"

## Type Aliases

- [AgentPluginConversationStatus](/reference/api/type-aliases/agentpluginconversationstatus/)
- [ConversationReportStatus](/reference/api/type-aliases/conversationreportstatus/)
- [ConversationSurface](/reference/api/type-aliases/conversationsurface/)
- [JuniorPluginInput](/reference/api/type-aliases/juniorplugininput/)
- [PluginConversationStatus](/reference/api/type-aliases/pluginconversationstatus/)
- [TranscriptPartType](/reference/api/type-aliases/transcriptparttype/)
- [TranscriptRole](/reference/api/type-aliases/transcriptrole/)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ title: "createApp"

> **createApp**(`options?`): `Promise`\<`Hono`\<`BlankEnv`, `BlankSchema`, `"/"`\>\>

Defined in: [junior/src/app.ts:332](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L332)
Defined in: [junior/src/app.ts:327](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L327)

Create a Hono app with all Junior routes.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ title: "defineJuniorPlugins"

> **defineJuniorPlugins**(`inputs`, `options?`): [`JuniorPluginSet`](/reference/api/interfaces/juniorpluginset/)

Defined in: [junior/src/plugins.ts:102](https://github.com/getsentry/junior/blob/main/packages/junior/src/plugins.ts#L102)
Defined in: [junior/src/plugins.ts:100](https://github.com/getsentry/junior/blob/main/packages/junior/src/plugins.ts#L100)

Define package-name plugins and JS plugin definitions for one app.

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ prev: false
title: "JuniorAppOptions"
---

Defined in: [junior/src/app.ts:61](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L61)
Defined in: [junior/src/app.ts:60](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L60)

## Properties

### configDefaults?

> `optional` **configDefaults?**: `Record`\<`string`, `unknown`\>

Defined in: [junior/src/app.ts:70](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L70)
Defined in: [junior/src/app.ts:69](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L69)

Install-wide provider defaults (`provider.key` format). Channel overrides take precedence.

Expand All @@ -23,7 +23,7 @@ Install-wide provider defaults (`provider.key` format). Channel overrides take p

> `optional` **conversationWork?**: `VercelConversationWorkCallbackOptions`

Defined in: [junior/src/app.ts:72](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L72)
Defined in: [junior/src/app.ts:71](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L71)

Queue consumer wiring for the durable conversation worker.

Expand All @@ -33,7 +33,7 @@ Queue consumer wiring for the durable conversation worker.

> `optional` **plugins?**: [`JuniorPluginSet`](/reference/api/interfaces/juniorpluginset/)

Defined in: [junior/src/app.ts:74](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L74)
Defined in: [junior/src/app.ts:73](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L73)

Direct plugin set override. Usually omitted when `juniorNitro()` uses a plugin module.

Expand All @@ -43,7 +43,7 @@ Direct plugin set override. Usually omitted when `juniorNitro()` uses a plugin m

> `optional` **sandbox?**: `object`

Defined in: [junior/src/app.ts:76](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L76)
Defined in: [junior/src/app.ts:75](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L75)

Sandbox execution options.

Expand All @@ -61,7 +61,7 @@ Entries may be exact domains or leading wildcard domains such as

> `optional` **slack?**: `object`

Defined in: [junior/src/app.ts:63](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L63)
Defined in: [junior/src/app.ts:62](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L62)

Slack-specific overrides applied after env parsing.

Expand All @@ -83,4 +83,4 @@ Slack emoji shown while Junior is processing. Defaults to `eyes`.

> `optional` **waitUntil?**: `WaitUntilFn`

Defined in: [junior/src/app.ts:84](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L84)
Defined in: [junior/src/app.ts:83](https://github.com/getsentry/junior/blob/main/packages/junior/src/app.ts#L83)
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Manifest-only plugin packages included by package name.

### registrations

> **registrations**: `JuniorPluginRegistration`[]
> **registrations**: `PluginRegistration`[]

Defined in: [junior/src/plugins.ts:22](https://github.com/getsentry/junior/blob/main/packages/junior/src/plugins.ts#L22)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ Read discovered skill names for reporting consumers.

### listRecentConversations()?

> `optional` **listRecentConversations**(`options?`): `Promise`\<[`AgentPluginConversationSummary`](/reference/api/interfaces/agentpluginconversationsummary/)[]\>
> `optional` **listRecentConversations**(`options?`): `Promise`\<[`PluginConversationSummary`](/reference/api/interfaces/pluginconversationsummary/)[]\>

Defined in: [junior/src/reporting.ts:104](https://github.com/getsentry/junior/blob/main/packages/junior/src/reporting.ts#L104)

Expand All @@ -149,4 +149,4 @@ Read recent conversation summaries without transcript payloads.

#### Returns

`Promise`\<[`AgentPluginConversationSummary`](/reference/api/interfaces/agentpluginconversationsummary/)[]\>
`Promise`\<[`PluginConversationSummary`](/reference/api/interfaces/pluginconversationsummary/)[]\>
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
editUrl: false
next: false
prev: false
title: "PluginConversationSummary"
---

Defined in: junior-plugin-api/src/operations.ts:12

## Properties

### channelName?

> `optional` **channelName?**: `string`

Defined in: junior-plugin-api/src/operations.ts:13

---

### conversationId

> **conversationId**: `string`

Defined in: junior-plugin-api/src/operations.ts:14

---

### displayTitle

> **displayTitle**: `string`

Defined in: junior-plugin-api/src/operations.ts:15

---

### lastActivityAt

> **lastActivityAt**: `string`

Defined in: junior-plugin-api/src/operations.ts:16

---

### lastUpdatedAt

> **lastUpdatedAt**: `string`

Defined in: junior-plugin-api/src/operations.ts:17

---

### source?

> `optional` **source?**: `"slack"` \| `"plugin"` \| `"local"` \| `"api"` \| `"internal"` \| `"scheduler"`

Defined in: junior-plugin-api/src/operations.ts:18

---

### status

> **status**: [`PluginConversationStatus`](/reference/api/type-aliases/pluginconversationstatus/)

Defined in: junior-plugin-api/src/operations.ts:19
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
editUrl: false
next: false
prev: false
title: "PluginConversations"
---

Defined in: junior-plugin-api/src/operations.ts:22

## Methods

### listRecent()

> **listRecent**(`options?`): `Promise`\<[`PluginConversationSummary`](/reference/api/interfaces/pluginconversationsummary/)[]\>

Defined in: junior-plugin-api/src/operations.ts:23

#### Parameters

##### options?

###### limit?

`number`

#### Returns

`Promise`\<[`PluginConversationSummary`](/reference/api/interfaces/pluginconversationsummary/)[]\>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ prev: false
title: "PluginOperationalReport"
---

Defined in: [junior-plugin-api/src/index.ts:439](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L439)
Defined in: junior-plugin-api/src/operations.ts:74

## Extends

Expand All @@ -17,7 +17,7 @@ Defined in: [junior-plugin-api/src/index.ts:439](https://github.com/getsentry/ju

> `optional` **generatedAt?**: `string`

Defined in: [junior-plugin-api/src/index.ts:433](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L433)
Defined in: junior-plugin-api/src/operations.ts:68

#### Inherited from

Expand All @@ -29,7 +29,7 @@ Defined in: [junior-plugin-api/src/index.ts:433](https://github.com/getsentry/ju

> `optional` **metrics?**: `PluginOperationalMetric`[]

Defined in: [junior-plugin-api/src/index.ts:434](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L434)
Defined in: junior-plugin-api/src/operations.ts:69

#### Inherited from

Expand All @@ -41,15 +41,15 @@ Defined in: [junior-plugin-api/src/index.ts:434](https://github.com/getsentry/ju

> **pluginName**: `string`

Defined in: [junior-plugin-api/src/index.ts:440](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L440)
Defined in: junior-plugin-api/src/operations.ts:75

---

### recordSets?

> `optional` **recordSets?**: `PluginOperationalRecordSet`[]

Defined in: [junior-plugin-api/src/index.ts:435](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L435)
Defined in: junior-plugin-api/src/operations.ts:70

#### Inherited from

Expand All @@ -61,7 +61,7 @@ Defined in: [junior-plugin-api/src/index.ts:435](https://github.com/getsentry/ju

> `optional` **title?**: `string`

Defined in: [junior-plugin-api/src/index.ts:436](https://github.com/getsentry/junior/blob/main/packages/junior-plugin-api/src/index.ts#L436)
Defined in: junior-plugin-api/src/operations.ts:71

#### Inherited from

Expand Down

This file was deleted.

Loading
Loading