@andypai/agent-kanban 0.6.3 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andypai/agent-kanban",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "Agent-friendly kanban board CLI. Manage tasks via bash commands, parse structured JSON output.",
|
|
5
5
|
"homepage": "https://github.com/abpai/agent-kanban#readme",
|
|
6
6
|
"repository": {
|
|
@@ -47,6 +47,7 @@ import type {
|
|
|
47
47
|
UpdateTaskInput,
|
|
48
48
|
} from './types'
|
|
49
49
|
import { DEFAULT_POLLING_SYNC_INTERVAL_MS } from '../sync-config'
|
|
50
|
+
import { warnOnce } from './warn-once'
|
|
50
51
|
|
|
51
52
|
export const FULL_RECONCILE_INTERVAL_MS = 5 * 60_000
|
|
52
53
|
|
|
@@ -856,7 +857,8 @@ export class JiraProviderCore implements KanbanProvider {
|
|
|
856
857
|
// SQLite calls it directly via the default handleWebhook above.
|
|
857
858
|
protected async handleWebhookCore(payload: WebhookRequest): Promise<WebhookResult> {
|
|
858
859
|
if (!process.env['JIRA_WEBHOOK_SECRET']) {
|
|
859
|
-
|
|
860
|
+
warnOnce(
|
|
861
|
+
'jira-webhook-open-dev-mode',
|
|
860
862
|
'[jira] JIRA_WEBHOOK_SECRET is not set — accepting webhook without signature verification (open dev mode)',
|
|
861
863
|
)
|
|
862
864
|
}
|
|
@@ -35,6 +35,7 @@ import type {
|
|
|
35
35
|
UpdateTaskInput,
|
|
36
36
|
} from './types'
|
|
37
37
|
import { DEFAULT_POLLING_SYNC_INTERVAL_MS } from '../sync-config'
|
|
38
|
+
import { warnOnce } from './warn-once'
|
|
38
39
|
|
|
39
40
|
const FULL_RECONCILIATION_INTERVAL_MS = 5 * 60_000
|
|
40
41
|
|
|
@@ -610,7 +611,8 @@ export class LinearProviderCore implements KanbanProvider {
|
|
|
610
611
|
// SQLite calls it directly via the default handleWebhook above.
|
|
611
612
|
protected async handleWebhookCore(payload: WebhookRequest): Promise<WebhookResult> {
|
|
612
613
|
if (!process.env['LINEAR_WEBHOOK_SECRET']) {
|
|
613
|
-
|
|
614
|
+
warnOnce(
|
|
615
|
+
'linear-webhook-open-dev-mode',
|
|
614
616
|
'[linear] LINEAR_WEBHOOK_SECRET is not set — accepting webhook without signature verification (open dev mode)',
|
|
615
617
|
)
|
|
616
618
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const warnedKeys = new Set<string>()
|
|
2
|
+
|
|
3
|
+
// Emit an informational warning at most once per process for a given key, so
|
|
4
|
+
// repeated hot paths (e.g. inbound webhooks) don't flood the dev console.
|
|
5
|
+
export function warnOnce(key: string, message: string): void {
|
|
6
|
+
if (warnedKeys.has(key)) return
|
|
7
|
+
warnedKeys.add(key)
|
|
8
|
+
console.warn(message)
|
|
9
|
+
}
|