feat: OpenMesh 基础平台与 MD/PDF 转换技能
- 后端: coworker 智能体框架, WS API, 文件上传, 附件处理 - 前端: Open WebUI, 文件全量走 upload API (含 MD/TXT/JSON 等文本类) - 技能: md-to-office (pandoc + wkhtmltopdf) - 修复: 上传文件路径丢失, Agent 搜索浪费, 输出文件跑到 uploads/ - 打包: PyInstaller one-dir, 预打包 pandoc/wkhtmltopdf/chromium
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: dependency-audit
|
||||
description: Scan lockfiles for vulnerable dependencies and triage by real reachability
|
||||
---
|
||||
Audit the project's dependencies and separate what's exploitable from what's noise.
|
||||
|
||||
1. Identify the ecosystems present (package-lock.json / pnpm-lock.yaml / yarn.lock,
|
||||
requirements*.txt / uv.lock / poetry.lock, go.sum, Cargo.lock, pyproject).
|
||||
2. Pick scanners that are present (check first; ask before installing):
|
||||
- `osv-scanner --lockfile <each lockfile> --format json` (best cross-ecosystem)
|
||||
- `npm audit --json` / `pip-audit -f json` / `trivy fs --scanners vuln . -f json`
|
||||
3. Deduplicate advisories across scanners (key on advisory id + package), then triage
|
||||
each one by reading the code:
|
||||
- Direct or transitive? (`npm ls <pkg>`, `pipdeptree -r -p <pkg>` or grep imports)
|
||||
- Is the vulnerable functionality actually used here? Grep for the affected API;
|
||||
an unreachable advisory in a dev-only tool is LOW no matter its CVSS.
|
||||
- Verdict per advisory: fix-now / fix-soon / accept-with-note, one line of why.
|
||||
4. Map each fix-now to its smallest closing upgrade (advisory metadata's fixed-in
|
||||
version); note when only a major closes it and what the migration entails.
|
||||
5. Deliver: an audit table (advisory · package · direct? · reachable? · verdict ·
|
||||
smallest fix) ordered by real priority — then hand off to `safe-upgrade-pr` for the
|
||||
actual upgrades. Offer a CI guard (e.g. an osv-scanner step) so new advisories
|
||||
surface on PRs instead of in the next audit.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: safe-upgrade-pr
|
||||
description: Ship minimal, test-verified dependency upgrades as focused PRs
|
||||
---
|
||||
Turn triaged advisories into upgrade PRs a reviewer can merge without fear.
|
||||
|
||||
1. One branch per ecosystem (`security/deps-npm`, `security/deps-python`), smallest
|
||||
viable bumps: the fixed-in patch/minor, not "latest". Majors get their own branch
|
||||
and a migration note.
|
||||
2. Regenerate lockfiles with the repo's OWN toolchain (`npm install pkg@ver`,
|
||||
`uv lock`, `poetry update pkg` …) — never hand-edit a lockfile.
|
||||
3. Verify before proposing: clean install, build, and the project's test suite. Red
|
||||
suite → investigate; if the bump itself breaks the build, document what's entangled
|
||||
and propose the next-smallest path instead of forcing it.
|
||||
4. PR body per upgrade: advisory id(s) closed, package old→new version, reachability
|
||||
verdict from the audit (one line), and the verification commands run. Skip CVE
|
||||
boilerplate walls — link the advisory instead.
|
||||
5. Leave `accept-with-note` advisories OUT of the PR; record them in the PR body's
|
||||
"consciously not fixed" list with their justification, so the decision is visible
|
||||
and revisitable.
|
||||
6. Never merge your own upgrade PR — deliver it with what a reviewer should check
|
||||
(typically: lockfile diff sanity and the test run).
|
||||
Reference in New Issue
Block a user