fix(triggers): correct weekly cron day-of-week mapping for APScheduler
Co-authored-by: michaelhuawei<michael.atamuk@huawei.com>
# message auto-generated for no-merge-commit merge:
!1077 merge fix/trigger-edit-version-dropdown into develop
fix(triggers): correct weekly cron day-of-week mapping for APScheduler
Created-by: michaelhuawei
Commit-by: michaelhuawei
Merged-by: ZYQ5333
Description: **What type of PR is this?**
/kind bug
**What does this PR do / why do we need it**:
Testers reported that **weekly triggers run one day later than intended**.
Example:
- User selects **Friday 09:00**
- APScheduler logs: next_run_utc = 2026‑05‑30 09:00:00+00:00
which is **Saturday**, not Friday.
Daily and monthly triggers were unaffected.
---
## ✔ Root Cause
APScheduler 3.x uses a **different day-of-week numbering** than POSIX cron:
| Meaning | POSIX cron | APScheduler |
|--------|------------|-------------|
| Monday | 1 | 0 |
| Friday | 5 | 4 |
| Saturday | 6 | 5 |
The frontend generated POSIX numeric DOW values (5 for Friday).
APScheduler interpreted that as its own 5 → **Saturday**.
Confirmed with APScheduler 3.11.2:
from_crontab("0 9 * * 5") → Saturday (wrong)
from_crontab("0 9 * * fri") → Friday (correct)
APScheduler correctly handles **day abbreviations**, not POSIX numbers.
---
## ✔ Fix Implemented
### **1. Frontend: CronConfigForm.tsx**
- Weekly cron builder now emits **day abbreviations** (mon, tue, fri) instead of numbers.
- Parser updated to accept both numeric and abbreviation formats for backward compatibility.
### **2. Backend: jobs.py**
Added _normalize_posix_cron():
- Converts numeric DOW tokens (5) into day abbreviations (fri)
- Handles:
- single values (5)
- lists (1,3,5)
- ranges (1-5)
- steps (1-5/2)
- Applied before calling CronTrigger.from_crontab()
This ensures correctness even for manually typed cron expressions.
---
## 🎉 Result
Weekly triggers now schedule on the correct day:
- Friday → Friday
- Monday → Monday
- All weekly schedules now match user intent
- Daily and monthly triggers remain unchanged
---
**Which issue(s) this PR fixes**:
Reported by testers (no formal issue number)
---
**Code review checklist**:
+ - [ ] whether to verify the function's return value
+ - [ ] Whether to comply with **SOLID principle / Demeter's law**
+ - [ ] Whether there is UT test case && the test case is valid (if no test case, explain why)
+ - [ ] Whether the API change is involved
+ - [ ] Whether official document modification is involved
See merge request: openJiuwen/agent-studio!1077
fix: mask api keys when visible chars is zero
Co-authored-by: hu-qi<huqi1024@gmail.com>
# message auto-generated for no-merge-commit merge:
!1032 merge fix-mask-api-key-visible-chars into develop
fix: mask api keys when visible chars is zero
Created-by: huqi
Commit-by: hu-qi
Merged-by: ZYQ5333
Description: ## Summary
- Fully mask API keys when visible_chars <= 0 to avoid leaking the full key via api_key[-0:]
- Add regression coverage for visible_chars=0, negative values, and the default trailing-character behavior
## Duplicate check
- Checked issue #822 comments: no human claim/comment found
- Checked open/closed/merged MR pages for #822, mask_api_key, visible_chars, security_utils, api_key, leak/泄露/脱敏 before coding; no direct duplicate found
- Rechecked before push; GitCode API/listing was intermittently timing out, but no direct match surfaced from the available checks
## Tests
- uv run --project backend pytest backend/tests/test_security_utils.py -q
- uv run --project backend pytest backend/tests/test_security_utils.py backend/tests/test_deepsearch_logger_security.py -q (blocked during collection because local Settings requires DB_HOST)
Fixes [#822](https://gitcode.com/openJiuwen/agent-studio/issues/822)
See merge request: openJiuwen/agent-studio!1032
fix: 创建weblink知识库导致知识库列表页面空白
Co-authored-by: Mmmmroy<le.zhang1@h-partners.com>
# message auto-generated for no-merge-commit merge:
!1046 merge fix/weblink_table into develop
fix: 创建weblink知识库导致知识库列表页面空白
Created-by: Mmmmroy
Commit-by: Mmmmroy
Merged-by: ZYQ5333
Description: <!-- Thanks for sending a pull request! Here are some tips for you:
1) If this is your first time, please read our contributor guidelines: https://gitcode.com/openJiuwen/community/blob/master/CONTRIBUTING.md
2) If you want to contribute your code but don't know who will review and merge, please add label openjiuwen-assistant to the pull request, we will find and do it as soon as possible.
-->
**What type of PR is this?**
<!--
选择下面一种标签替换下方 /kind <label>,可选标签类型有:
- /kind bug
- /kind task
- /kind feature
- /kind refactor
- /kind clean_code
如PR描述不符合规范,修改PR描述后需要/check-pr重新检查PR规范。
-->
/kind bug
**Self-checklist**:(**请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入**)
+ - [ ] **设计**:PR对应的方案是否已经经过Maintainer评审,方案检视意见是否均已答复并完成方案修改
+ - [ ] **测试**:PR中的代码是否已有UT/ST测试用例进行充分的覆盖,新增测试用例是否随本PR一并上库或已经上库
+ - [ ] **验证**:PR描述信息中是否已包含对该PR对应的Feature、Refactor、Bugfix的预期目标达成情况的详细验证结果描述
+ - [ ] **接口**:是否涉及对外接口变更,相应变更已得到接口评审组织的通过,API对应的注释信息已经刷新正确
+ - [ ] **文档**:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓
<!-- **Special notes for your reviewers**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->
See merge request: openJiuwen/agent-studio!1046
refactor: remove auto sync db and add alembic development guide
Co-authored-by: cs123abc<chensheng63@huawei.com>
# message auto-generated for no-merge-commit merge:
!395 merge develop-20260121-basedon-20260116 into develop
refactor: remove auto sync db and add alembic development guide
Created-by: chensheng12345
Commit-by: cs123abc
Merged-by: ZYQ5333
Description: <!-- Thanks for sending a pull request! Here are some tips for you:
1) If this is your first time, please read our contributor guidelines: https://gitcode.com/openJiuwen/community/blob/master/CONTRIBUTING.md
2) If you want to contribute your code but don't know who will review and merge, please add label openjiuwen-assistant to the pull request, we will find and do it as soon as possible.
-->
**What type of PR is this?**
<!--
选择下面一种标签替换下方 /kind <label>,可选标签类型有:
- /kind bug
- /kind task
- /kind feature
- /kind refactor
- /kind clean_code
如PR描述不符合规范,修改PR描述后需要/check-pr重新检查PR规范。
-->
/kind refactor
**Self-checklist**:(**请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入**)
+ - [x] **设计**:PR对应的方案是否已经经过Maintainer评审,方案检视意见是否均已答复并完成方案修改
+ - [x] **测试**:PR中的代码是否已有UT/ST测试用例进行充分的覆盖,新增测试用例是否随本PR一并上库或已经上库
+ - [x] **验证**:PR描述信息中是否已包含对该PR对应的Feature、Refactor、Bugfix的预期目标达成情况的详细验证结果描述
+ - [x] **接口**:是否涉及对外接口变更,相应变更已得到接口评审组织的通过,API对应的注释信息已经刷新正确
+ - [x] **文档**:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓
<!-- **Special notes for your reviewers**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->
See merge request: openJiuwen/agent-studio!395
docs(connect): add Docker operation guidance and update EN/ZH documentation
Co-authored-by: michaelhuawei<michael.atamuk@huawei.com>
# message auto-generated for no-merge-commit merge:
!1070 merge fix/connect-cli-and-email-issues into develop
docs(connect): add Docker operation guidance and update EN/ZH documentation
Created-by: michaelhuawei
Commit-by: michaelhuawei;Michael
Merged-by: ZYQ5333
Description: **What type of PR is this?**
/kind documentation /kind enhancement
**What does this PR do / why do we need it**:
This PR updates the Connect documentation to clearly describe the differences
between **local operation** and **Docker-based operation** of Connect adapters
and services.
Users previously encountered confusion when running Connect inside Docker,
because several behaviors differ from local execution (paths, environment
variables, adapter command execution, volume mounts, etc.).
---
## ✔ Key Documentation Updates
### **1. Added Docker-specific operation instructions**
Documentation now explains:
- How Connect runs inside Docker
- How adapter commands behave differently in containers
These updates appear in both:
- **[EN Connect docs](ca://s?q=Show_updated_EN_Connect_docs)**
- **[ZH Connect docs](ca://s?q=Show_updated_ZH_Connect_docs)**
---
## ✔ 2. Clarified configuration differences
Added explanations for:
- Local vs Docker config file locations
- How command, args, and env behave in containerized adapters
---
## 🎉 Result
Users can now reliably operate Connect in both local and Docker environments,
with clear guidance on what differs and how to configure
See merge request: openJiuwen/agent-studio!1070