Commit Graph

408 Commits

Author SHA1 Message Date
Jin Hai
266837eb33 Go: add context to redis client (#17689)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-02 22:50:54 +08:00
Jin Hai
b2521ebf51 Go: refactor log and config (#17684)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-02 20:55:19 +08:00
Jin Hai
8db965fbb9 Go: remove unused code (#17680)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-02 00:31:21 +08:00
Jin Hai
f621b4c7b4 Go: refactor config (#17678)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-01 22:06:56 +08:00
Jin Hai
26a5af8b83 Go: fix list services (#17664)
### Summary

1. Fix admin list services;
2. Fix admin show service 'service_name';

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-01 14:52:37 +08:00
Zhichang Yu
b811dce1b0 feat(go): port knowledge compilation template/group + wiki artifact/nav/skill REST APIs from Python (#17656) 2026-07-31 22:57:43 +08:00
Haruko386
ae8c18bb17 fix: team member can edit permission (#17633)
### Summary

As title
2026-07-31 20:14:35 +08:00
Haruko386
714defbebe fix: team member can edit permission (#17631)
### Summary

As title
2026-07-31 20:14:17 +08:00
euvre
29e5181095 fix: don't persist ephemeral sessions in multi-model chat completions (#17637) 2026-07-31 19:12:24 +08:00
Jin Hai
36ae39bc60 Go: refactor config (#17544)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-31 17:18:45 +08:00
Haruko386
0108cdac67 fix: write wrong type of metadata (#17605) 2026-07-31 16:55:34 +08:00
Hz_
4a43a1d620 fix(go-agent): align logs auth with Python and harden event data (#17617)
## Summary

- Align Go agent logs access with the Python behavior by checking tenant
access to the target agent instead of requiring the token to be bound
to that agent.
- Marshal canvas lifecycle event payloads safely so non-serializable
inputs do not break Thinking expansion in the UI.

  ## Testing

- `CGO_ENABLED=0 go test -count=1 -v -run
"Handler|Attachment|Logs|Chatbot|Agentbot|BuildWorkflow|NodeLifecycle|VarRef|Resolve|Extract"./internal/handler/
./internal/agent/canvas/...` PASS
2026-07-31 16:24:25 +08:00
euvre
ed05f32fee feat(go): implement memory extraction task consumer (#17404) 2026-07-31 11:23:58 +08:00
euvre
8fc20dd9ca Test: release Go-proxy RESTful contract tests verified passing in Go mode (#17468)
### Summary

Aligns Go and Python error codes/messages so both backends honor the
same RESTful API contract, removing implementation-specific error leaks
(MySQL errors, `ValueError`, `AttributeError`, Gin validator format) in
favor of clean business error codes.

**Chat list** — invalid `orderby` now returns code 101 (was: raw Python
`AttributeError` code 100); invalid `page`/`page_size` values fall back
to defaults (was: raw `ValueError`/`ProgrammingError` code 100).

**Dataset create/update/delete** — adds UUID validation (101),
extra-field rejection (101), duplicate-id detection (101), content-type
/ JSON-syntax / object-shape checks (101), and "lacks permission" for
nonexistent datasets (IDOR). Create auto-deduplicates dataset names.
Pagerank updates tolerate a missing ES index. List response includes
`parser_config` and `pagerank`.

**Session list/update** — adds filtering, sorting, and pagination
support. Empty payloads are valid no-ops. Authorization errors map to
code 109.

**Chunk list** — doc object uses Python key names (`chunk_count`,
`dataset_id`, `chunk_method`, run text status). Add validates list
element types.

**Document update** — adds `chunk_method` alias, pydantic-style Field
error messages, metadata index auto-create with refresh, and "These
documents do not belong to dataset" messages. List validates
`metadata_condition` and reports ownership errors for unmatched name/id
filters.

**Search completion** — `kb_ids` ownership failure returns code 102
instead of 109.

Released 31 contract tests from `GO_ONLY_SKIPS` (all verified passing on
both Go and Python backends with real LLM keys).
2026-07-30 19:58:49 +08:00
euvre
9519ad7e08 fix: propagate publish release flag through Go agent endpoints (#17347) 2026-07-30 19:27:44 +08:00
Jack
1629357bf7 Fix internal/handler test failures, align response with Python contract, and re-enable handler/storage/agent tests in CI (#17554)
## Summary

Fixes the 6 pre-existing failures in `internal/handler`, aligns one
response
field with the Python API contract, and re-enables packages in CI that
were
previously excluded because of (or unrelated to) those failures.

### Test/handler fixes
- **plugin.go**: return `"success"` (lowercase) instead of `"SUCCESS"`
so the
response envelope matches the Python backend, keeping backend-swap
transparent.
- **search_handler_test.go**: expect lowercase `"no authorization"` to
match the
  service error message, which mirrors Python.
- **agent_test.go**: seed versions with `CreateTime` instead of
`UpdateTime` so
  `ListVersions` ordering (`create_time DESC`) is exercised correctly.
- **agent_wait_for_user_test.go**: a clean run may emit only the
`[DONE]` frame;
relax the SSE assertion to require a non-empty stream ending in
`[DONE]`.
- **bot_test.go**: align attachment-download assertions with actual
behavior
  (`Content-Disposition: attachment; filename="file"`, default
`application/octet-stream`), matching Python
`resolve_attachment_content_type`.

### CI
- **tests.yml / sep-tests.yml**:
- Remove the `grep -v '/internal/handler$'` filter — the 6 failures that
    motivated it are now fixed.
- Remove the `grep -v '/internal/storage$'` filter — `internal/storage`
tests self-skip via `t.Skipf` when MinIO is unavailable, so the package
is
    safe to run in CI.
  - Remove the `grep -v '/internal/agent$'` filter (only present in the
tests.yml infinity job) — the exclusion was undocumented and
inconsistent
    with the other jobs that already run `internal/agent`.
- Keep the `internal/tokenizer` exclusion: it is a genuine environmental
dependency (dict files at `/usr/share/infinity/resource`, absent in the
Go
    test environment).

## Test plan

- `build.sh --test ./internal/handler/` is green (previously 6 FAIL).
- `build.sh --test ./internal/storage/ ./internal/agent/` should pass;
the
MinIO-backed `internal/storage` tests skip gracefully without a MinIO
server.
- After this PR, `internal/handler`, `internal/storage`, and
`internal/agent`
  run again in CI unit-test jobs; `internal/tokenizer` stays excluded.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-07-30 16:59:39 +08:00
Zhichang Yu
90f46b0b4d Go port: doc-level metadata extraction and knowledge compiler (#17536)
Ports doc-level auto-metadata extraction to Go and adds the
knowledge_compiler component with scheduler/routing. Fixes Extractor
metadata injection type assertion and enable_metadata default-on.
2026-07-29 21:06:48 +08:00
Haruko386
c7b1b3a4d2 feat: make chat-channel and implement WhatsApp bot (#17518) 2026-07-29 18:55:22 +08:00
Jin Hai
1f90755c48 Go: refactor (#17511)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-29 18:00:59 +08:00
Sbaaoui Idriss
e9637c9f94 fix: list model function for nvidia on python/go not returning current models (#17501)
### Summary

fix the list model logic for nvidia models
2026-07-29 13:15:34 +08:00
Wang Qi
989529c00a Fix filter dataset by owner_ids not working (#17499) 2026-07-29 11:48:40 +08:00
Haruko386
4885dda32a fix: failed to set right status in memory (#17472)
As title

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-07-28 19:13:22 +08:00
Jin Hai
7f21a7ba18 Go: add context, part14 (#17446)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-28 19:05:59 +08:00
Wang Qi
795bd7c00f Fix: expose the real error when ingest error (#17485) 2026-07-28 17:32:32 +08:00
Hz_
19b60132da fix(go-agent): use session IDs for cancellation and context flow (#17462)
## Summary

- Propagate request contexts through Agent Canvas execution and external
calls.
- Replace internal task IDs with session IDs while retaining `task_id`
as a wire alias.
- Complete session-scoped cancellation with Redis lease and token
validation.

## Testing

- Go backend tests passed.

<img width="1176" height="574" alt="image"
src="https://github.com/user-attachments/assets/b86560be-9b8d-45bb-97e9-921dffab8ebe"
/>
2026-07-28 14:59:34 +08:00
Lynn
15f8ef7409 Fix: code review (#17442) 2026-07-28 09:47:22 +08:00
Jin Hai
1436fcaca5 Go: add context, part13 (#17445)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 21:19:39 +08:00
Jin Hai
f73f4cb720 Go: add context, part12 (#17435)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 19:30:41 +08:00
euvre
246c40c4e6 fix: show resolved embedding model display name in dataset list (#17415) 2026-07-27 19:09:16 +08:00
Jin Hai
19d861b797 Go: add context, part11 (#17426)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 17:48:44 +08:00
euvre
30b40caff8 Fix agentbot embedded chat streaming envelope (#17420) 2026-07-27 17:39:44 +08:00
Jin Hai
49e6181eca Go: add context, part10 (#17417)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 16:14:23 +08:00
Jin Hai
3065a29935 Go: add context, part9 (#17412)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 15:06:48 +08:00
Lynn
9bec8d12bb Fix: simplify verify go (#17397) 2026-07-27 13:54:36 +08:00
Jin Hai
f5aa5f7d94 Go: context, part8 (#17405)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 13:38:15 +08:00
Jin Hai
1571abd98a Go: add context, part7 (#17402)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 11:23:06 +08:00
Jin Hai
9d4847beaf Go: add context, part6 (#17399)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 11:09:17 +08:00
Wang Qi
53afc32349 Fix get datasets owner retrieve the whole dataset (#17370) 2026-07-27 10:24:13 +08:00
Jin Hai
f53518c110 Go: add context, part5 (#17392)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-27 10:20:16 +08:00
Jin Hai
53e83dcadf Go: add context, part4 (#17381)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-26 18:31:56 +08:00
Jin Hai
cc1eb6fb58 Go: add context, part3 (#17369)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-24 22:00:09 +08:00
Jin Hai
d9e359d481 Go: add context (#17354)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-24 20:19:41 +08:00
Haruko386
0471fd5695 fix: unable to add metadata in dataset (#17359)
### Summary

As title
2026-07-24 19:33:13 +08:00
Hz_
601742e000 fix(go-agent): message double (#17353)
## Summary

- Preserve all streamed Agent deltas when Message consumes deferred
output.
- Prevent duplicate final answers while keeping Agent and Message event
ordering consistent.
- Add regression coverage for complete deferred streaming output.

## Testing

- `CGO_ENABLED=0 go test ./internal/agent/component
./internal/agent/runtime -count=1`
2026-07-24 19:23:51 +08:00
Jin Hai
bdfc3ada41 Go: add context (#17314)
### Summary

As title.

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-24 16:47:12 +08:00
futurehua
bd355deaa9 refactor: use the built-in max/min to simplify the code (#17059)
### Summary

In Go 1.21, the standard library includes built-in
[max/min](https://pkg.go.dev/builtin@go1.21.0#max) function, which can
greatly simplify the code.

Signed-off-by: futurehua <futurehua@outlook.com>
2026-07-24 15:33:02 +08:00
Haruko386
347d8f2b5f fix: not sorted when list chunks (#17329)
### Summary

As title, sorted now
2026-07-24 12:07:43 +08:00
euvre
86530931fe fix(agent): set exp_user_id and name on session creation so exploration shows session titles (#17327) 2026-07-24 11:36:20 +08:00
Haruko386
74218bdd6a fix: search chunk cannot get result (#17328) 2026-07-24 11:01:30 +08:00
euvre
99bea630b0 fix: agent session round count not incremented in Go mode (#17295) 2026-07-24 09:53:58 +08:00