1780 Commits
Author SHA1 Message Date
Duy /zuey/andGitHub c70324f032 Merge pull request #1230 from digitopvn/dev
Sync digitop dev changes into upstream dev
v3.15.0-beta.1
2026-06-15 15:03:26 +07:00
Duy /zuey/andGitHub 3b15d7e69a Merge pull request #1197 from zezaeoh/fix/bridge-agent-key
fix(gateway): inject agent key in MCP bridge so session tools resolve identity
2026-06-15 14:50:41 +07:00
Goon 591d809779 Merge remote-tracking branch 'upstream/dev' into dev
# Conflicts:
#	internal/cron/service.go
2026-06-15 14:14:16 +07:00
Goon faf3e282a3 fix(cron): return job snapshots safely 2026-06-15 11:33:46 +07:00
Jaegeon Oh 36c88fdd6e fix(gateway): inject agent key in MCP bridge so session tools resolve identity
bridgeContextMiddleware injects the agent UUID (store.WithAgentID) but never the
agent key, so session tools (sessions_list/history/send/status) that resolve the
caller via tools.ToolAgentKeyFromCtx always get "" and fail with "agent context
required" when invoked over /mcp/bridge (e.g. by a claude-cli provider agent).
Session keys are namespaced by agent key (agent:<key>:...), not UUID, and the
bridge has no RunContext fallback.

Inject the key in the same block that already fetches the agent for shell-deny
overrides — symmetric with store.WithShellDenyGroups, no extra DB call, no new
imports.

#1094 makes the same fix at this site but bundles it into a large, stale
(CONFLICTING) ACP/i18n refactor; this is the minimal extraction of that slice.
It omits #1094's companion store.WithAgentKey write, which nothing on dev reads
(every session tool reads tools.ToolAgentKeyFromCtx).

Add internal/gateway/bridge_context_test.go: a regression guard asserting a
signed X-Agent-ID lands the agent key in tools.ToolAgentKeyFromCtx, plus a
no-store negative control.

Signed-off-by: Jaegeon Oh <zezaeoh@gmail.com>
2026-06-15 13:17:02 +09:00
Duy /zuey/andGitHub 4dd2a0ce28 Merge pull request #1210 from keithy/feature/pkg-helper-fallback
feat: implement pkg-helper fallback execution
2026-06-15 10:41:17 +07:00
Duy /zuey/andGitHub 9c1c572298 Merge pull request #1172 from raihan0824/feat/provider-kimi-coding
Feat/provider kimi coding
2026-06-15 10:40:45 +07:00
Duy /zuey/andGitHub 417eae02b9 Merge pull request #1191 from thotam/feat/read-image-from-url
feat(multimodal): support analyzing images and videos via URLs & streaming upload for Gemini
2026-06-15 10:39:36 +07:00
Duy /zuey/andGitHub 00c25635e5 Merge pull request #1176 from dataplanelabs/upstream-fix/tts-timeout-wire
fix(tts): wire dashboard tts.timeout_ms through ApplySystemConfigs + seed
2026-06-15 10:36:50 +07:00
Duy /zuey/andGitHub f333706642 Merge pull request #1220 from bclermont/fix/setup-page-scrolling
fix(setup): enable scrolling on mobile setup page
2026-06-15 10:35:42 +07:00
Goon 1dea4a21cf fix: harden media URL handling 2026-06-15 10:20:21 +07:00
Goon 540dc11301 fix(providers): send Kimi headers when listing models 2026-06-15 10:16:47 +07:00
Raihan AfiandiandGoon cc9334fdd9 fix(providers): kimi_coding requires reasoning_content on assistant tool-call
Upstream returns HTTP 400 `thinking is enabled but reasoning_content
is missing in assistant tool call message at index N` when an
assistant message with tool_calls is replayed in history without a
reasoning_content field. Kimi has server-side thinking enabled by
default for kimi-k2-turbo-preview, so the field is required even when
goclaw doesn't have captured reasoning content to send (e.g. the model
emitted a tool_call without any thinking, or the stream chunk that
carried it was lost).

The existing branch already gates on
openAIWireAssistantReasoningContent(model) (kimi/deepseek/o-series)
and emits the field only when Thinking != "". Extend so kimi_coding
also emits an empty string when Thinking is unset — satisfies Kimi's
"must be present" check without inventing reasoning content. Other
providers in the allowlist keep today's behavior: omit when empty.

Three new tests:
  - kimi_coding always carries reasoning_content on assistant
  - kimi_coding preserves real Thinking content when set
  - non-kimi providers (deepseek) do NOT inject empty reasoning_content

Reference: NousResearch/hermes-agent plugins/model-providers/kimi-coding
documents the same upstream behavior (thinking enabled by default,
reasoning_content roundtrip required).
2026-06-15 10:16:47 +07:00
Raihan AfiandiandGoon b844af8d25 feat(providers): add kimi_coding provider with fixed User-Agent + temp lock
Moonshot's Kimi Coding endpoint is OpenAI-compatible on the wire but
has two non-standard rules:

  1. Every request must carry `User-Agent: claude-code/0.1.0` — without
     it the upstream rejects the call outright.
  2. `temperature` is locked to the server default; passing any other
     value returns HTTP 400 `invalid temperature: only 1 is allowed for
     this model`.

Rather than special-case either, this commit generalises both:

  - WithExtraHeaders on OpenAIProvider — static headers attached to
    every outgoing request. Reusable by any future provider that needs
    pinned identity headers; mirrored in adapter_openai.ToRequest so
    callers using the adapter path see the same shape.
  - The existing skipTemp branch in openai_request.go gets a
    provider_type check — kimi_coding joins o1/o3/o4/gpt-5-mini in
    omitting `temperature` from the request body.

Provider wiring:
  - store.ProviderKimiCoding constant + ValidProviderTypes entry +
    KimiCoding{DefaultAPIBase,DefaultModel,RequiredUserAgent}.
  - case store.ProviderKimiCoding in both registration switches
    (cmd/gateway_providers.go and internal/http/providers.go).
  - UI dropdown entry with the API base pre-filled.

5 unit tests cover: real outgoing header injection, adapter-path
header mirroring, empty-map WithExtraHeaders no-op, kimi_coding
strips temperature, and the negative control (other providers still
forward temperature).

Admin flow: Providers → Add → "Kimi Coding (Moonshot)" → paste API
key → save.
2026-06-15 10:16:47 +07:00
Goon 9b16a57a4a fix(pkg-helper): harden direct fallback parsing 2026-06-15 10:15:50 +07:00
Goon 000731131c fix(bitrix): update domain validation copy 2026-06-15 10:10:39 +07:00
Goon 05f0357ee6 Merge commit '4c500055d2c96e84b4cfb225c51be7b4beaf8e1b' into codex/merge-pr-1209 2026-06-15 10:10:38 +07:00
Duy /zuey/andGitHub 2677e32624 Merge pull request #179 from digitopvn/codex/issue-141-cron-no-reply-contains
fix(cron): suppress deliveries containing NO_REPLY
2026-06-13 09:09:06 +07:00
Goon cd7c812b3d fix(cron): suppress no-reply deliveries by token 2026-06-13 09:01:56 +07:00
Bruno ClermontandClaude Haiku 4.5 edcccfba23 fix(setup): enable scrolling on mobile setup page
- Change outer container from items-center to items-start sm:items-center for mobile-first layout
- Add overflow-y-auto and max-h-dvh constraints to inner content div on mobile
- Desktop (sm breakpoint) retains centered layout with no scroll constraint
- Fixes issue where setup page content exceeds viewport on mobile without zoom

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-12 18:53:12 -04:00
Duy /zuey/andGitHub c4a927e087 Merge pull request #178 from digitopvn/codex/fix-cron-test-tempdir-cleanup
fix(cron): wait for in-flight jobs on shutdown
2026-06-12 22:53:18 +07:00
Goon 3ec20dfb55 fix(cron): wait for in-flight jobs on shutdown 2026-06-12 22:44:45 +07:00
Duy /zuey/andGitHub 8761ce5401 Merge pull request #177 from digitopvn/codex/issue-175-bundled-goclaw-skill
feat(skills): add bundled goclaw gateway skill
2026-06-12 22:26:07 +07:00
Goon 25b039dbe9 feat(skills): add bundled goclaw gateway skill 2026-06-12 22:17:41 +07:00
Duy /zuey/andGitHub c32d6b3279 Merge pull request #176 from digitopvn/codex/issue-107-usage-analytics-plan
feat(usage): add event analytics dashboard
2026-06-12 18:28:35 +07:00
Goon 41bead2a07 fix(usage): remove stale team table migration reference 2026-06-12 18:16:20 +07:00
Goon 06877365c4 merge: sync dev into usage analytics branch 2026-06-12 17:58:22 +07:00
Duy /zuey/andGitHub 4f87b93dbd feat: add qwen3.7-plus to Bailian Coding catalog
Closes #169
2026-06-12 17:57:48 +07:00
Goon 4002bb4c13 feat(usage): add event analytics dashboard 2026-06-12 17:51:12 +07:00
Duy /zuey/andGitHub 85fe1b8e81 Merge pull request #174 from digitopvn/codex/issue-172-multi-attachment-delivery
feat: add multi-attachment delivery batching
2026-06-12 17:45:16 +07:00
Goon 9cd57a920c feat: add multi-attachment delivery batching 2026-06-12 17:33:54 +07:00
Duy /zuey/andGitHub 515596c44c Merge pull request #167 from digitopvn/codex/issue-161-skill-self-evolution
feat(skills): add skill self-evolution metrics
2026-06-12 15:55:18 +07:00
Goon dd6ee64f23 fix(skills): harden evolution mutations 2026-06-12 15:38:23 +07:00
Duy /zuey/andGitHub 99e8b67e8b Merge pull request #168 from digitopvn/codex/issue-166-delivery-persona-context
feat: add persona context to delivery messages
2026-06-12 15:36:55 +07:00
Goon a76f443411 feat: add persona context to delivery messages 2026-06-12 15:17:57 +07:00
Duy /zuey/andGitHub 79bc490786 Merge pull request #165 from digitopvn/codex/issue-160-first-agent-gateway-operator
feat: grant first setup agent gateway operator access
2026-06-12 15:12:06 +07:00
Goon 1e0ea7615d fix(skills): guard suggestion status updates by skill 2026-06-12 15:04:29 +07:00
Goon 248d591f52 fix: resolve dev merge conflicts 2026-06-12 15:01:38 +07:00
Goon 7692939d09 Merge remote-tracking branch 'origin/dev' into codex/issue-161-skill-self-evolution
# Conflicts:
#	cmd/skills_cmd.go
#	docs/project-changelog.md
#	internal/http/skills.go
#	internal/store/sqlitestore/schema.go
2026-06-12 14:57:09 +07:00
Goon 016a6d2de8 fix(cli): avoid skill evolution JSON helper collision 2026-06-12 14:50:33 +07:00
Duy /zuey/andGitHub b4c63e4afb Merge pull request #164 from digitopvn/codex/issue-159-skill-lifecycle-api-cli
feat(skills): add lifecycle API and CLI
2026-06-12 14:50:13 +07:00
Goon fa79693b5d Merge remote-tracking branch 'origin/dev' into codex/issue-161-skill-self-evolution
# Conflicts:
#	docs/project-changelog.md
2026-06-12 14:48:55 +07:00
Goon f45bfa860c feat(skills): add skill self-evolution metrics 2026-06-12 14:47:51 +07:00
Goon 569e946e43 fix: resolve issue 159 dev merge conflict 2026-06-12 14:42:48 +07:00
Duy /zuey/andGitHub a44a57b61a Merge pull request #163 from digitopvn/codex/issue-158-operator-traces-cli
feat(cli): add trace operator commands
2026-06-12 12:35:12 +07:00
Goon c320de5a87 feat: grant first setup agent gateway operator access 2026-06-12 10:40:59 +07:00
Goon 0bf7f88054 feat(skills): add lifecycle API and CLI 2026-06-12 10:38:53 +07:00
Goon e2c0398ec9 feat(cli): add trace operator commands 2026-06-12 09:48:01 +07:00
Duy /zuey/andGitHub 95fd1f8f2d fix(providers): fallback on codex safety errors (#157) 2026-06-12 00:43:09 +07:00
Duy /zuey/andGitHub 8d664954e6 Merge pull request #156 from digitopvn/codex/issue-137-mid-flight-requests
fix(pipeline): preserve mid-flight follow-up requests
2026-06-12 00:36:28 +07:00