merge: align findjob public entry with master

This commit is contained in:
pikastech
2026-07-18 16:36:30 +02:00
36 changed files with 1336 additions and 57 deletions
+8
View File
@@ -53,6 +53,7 @@ bun scripts/cli.ts platform-infra pipelines-as-code history --target JD01 --limi
bun scripts/cli.ts platform-infra pipelines-as-code history --target JD01 --id <pipelinerun>
bun scripts/cli.ts platform-infra pipelines-as-code diagnose-regression --target NC01 --consumer <consumer>
bun scripts/cli.ts platform-infra pipelines-as-code delivery-timing --target NC01 --consumer selfmedia-nc01
bun scripts/cli.ts platform-infra pipelines-as-code delivery-observe --target NC01 --consumer <consumer> --source-commit <full-sha>
bun scripts/cli.ts platform-infra pipelines-as-code closeout --target <NODE> --consumer <consumer> --wait --timeout 120s
bun scripts/cli.ts platform-infra pipelines-as-code debug-step --target JD01 --consumer <consumer>
bun scripts/cli.ts platform-infra pipelines-as-code debug-step --target JD01 --consumer <consumer> --id <pipelinerun>
@@ -102,6 +103,13 @@ bun scripts/cli.ts hwlab nodes control-plane legacy-cicd --help
- 该入口固定只读且 `mutation=false`,不得用于同步、触发、补跑或运行面写入。
- 验收 registry cache 性能时,按 [Gitea + PaC](references/gitea-pac.md) 的冷热两次正常 PR 流程执行,不用人工 PipelineRun 或重复 status/timing 试探。
- PaC consumer 按 source commit 做发布后取证:
- 唯一推荐入口是 `platform-infra pipelines-as-code delivery-observe --target <NODE> --consumer <id> --source-commit <full-sha>`
- 一次 target-side capture 直接返回匹配的 PipelineRun、Argo sync/health 与首个退化资源或 condition、同 namespace exact-source workloads、ready/digest、首断点和 `complete|partial|blocked`
- 固定 `remoteCaptureCount=1``mutation=false`,不得再手工串联 `status``history``delivery-timing` 或裸 Kubernetes 对象查询;
- `complete` 表示 PipelineRun、exact-source runtime 与 Argo 全部就绪;`partial` 保留已成立的 exact-source 证据并明确 Argo 或 runtime 首断点;`blocked` 表示目标读取失败、source 不匹配、PipelineRun 未成功或当前 runtime 未观察到该 source
- TaskRun artifact 日志默认延后时只披露 `artifactEvidence.deferred=true`,不放宽既有 status evaluator,也不伪造 provenance。
- 新增 PaC consumer 的首次引导:
- 先执行一次 `pipelines-as-code bootstrap --dry-run`
- 确认后把同一命令改为 `--confirm`
+12
View File
@@ -10,6 +10,7 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web
- 当任务使用 `$unidesk-devlevel` 描述开发方式时:
- L1 使用 `native-readiness` 从 owning YAML 固定 HTTPS origin 验证 native Web
- `127.0.0.1``localhost`、IP、port 和临时 URL 只能用于本机进程 probe,不能作为 L1 浏览器入口或用户反馈 URL;
- 执行 L1 时发现历史实例没有 owning YAML 固定 HTTPS exposure,必须发现一例就登记、受控部署并验收一例,通过后再继续当前任务;
- L2 使用 development semantic origin
- L3 使用 production semantic origin
- 本 skill 负责各运行面的浏览器操作,不解释项目处于哪个等级。
@@ -34,6 +35,13 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web
- 输出中的 `cleanup.state=confirmed` 才证明进程已停止,`cleanup.state=unknown` 表示远端传输或清理证据仍不完整。
- 涉及 Web 哨兵、`web-probe sentinel``monitor.pikapython.com`、定期/周期巡检或新建巡检时,必须同时加载 `$unidesk-monitor`
- 真实用户入口验证优先;源码检查、构建通过或截图局部正常不能替代原入口验收。
- 共享 `public-edge` 出现不同任务反复覆盖同一 Caddy desired state 时:
- HTTPS 入口仍可用则直接继续用户交付,不因 fingerprint warning 阻塞业务;
- HTTPS 入口不可用且用户需要即时交付时,可临时交付 owning 配置声明的固定 HTTP port
- 临时 HTTP 入口必须保持业务认证,不得改用随机端口、关闭认证或新增第二 Caddy/FRP;
- 立即登记公共入口故障,记录覆盖来源缺失、current/desired 漂移和受影响站点;
- 业务任务停止重复 `public-edge apply`,不得通过循环重放与其他开发任务争夺共享控制;
- 公共入口主责收口后,再从 owning YAML 的正式 HTTPS origin 复测并撤回临时入口。
- WebProbe 因内存、浏览器资源或受控启动策略阻断时:
- 只把浏览器证据标记为 blocked,不得把整个开发、诊断或验收任务一并停止;
- 先记录策略引用、实际指标、阈值、blocker code 和允许的恢复入口;
@@ -135,6 +143,10 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web
- Cloud Console 全路由、多视口和通用产品交互收口:
- 使用 `web-probe console-verify --node <node> --lane <lane> --origin internal|public --profile <profile>`
- 路由、视口、selector、工作流、等待和证据上限只从 owning YAML profile 读取;
- 默认摘要直接返回有界 `pageErrors``consoleErrors``requestFailures``responseErrors`,白屏或 workflow 失败先看各数组首项,不再为首错重复启动浏览器;
- semantic internal origin 必须披露实际 namespace、Service、ClusterIP、port 和 schemeproduction profile 必须由 production owning YAML 明确选择 production namespace,禁止继承后静默落到 development lane
- 长任务生成的受控 JSON 与截图都由 remote artifact runner 下载;输出的绝对或相对 artifact 路径必须能直接交给 `web-probe artifact inspect`,禁止生成会被自身路径门禁拒绝的 NEXT;
- TaskTree profile 先从全局 TaskGroup 进入 group deep link,再选择真实 task;详情验收接受 dialog 或 docked panel,并只在 dialog 模式发送 Escape
- 不再复制临时脚本;
- 只用于已部署页面的人工 closeout;
- 不进入 CI/CD gate