feat: enforce hard test-tier requirement across all DevPlace workflow agents and feature-builder docs
DevPlace CI / test (push) Failing after 21m53s

Update the feature-builder agent prompt, test-maintainer agent, and all four workflow JS files (devii-tool, endpoint, feature, job-service) to codify the DevPlace test standard as a non-optional project requirement: one test file per endpoint, directory tree mirroring the URL/source path, split into three tiers (unit, api, e2e). Add explicit Test phases to devii-tool, endpoint, feature, and job-service workflows, and embed tier-specific test instructions (path mapping, fixture choice, coverage scope) directly in each workflow's meta description and TESTS constant.
This commit is contained in:
2026-06-15 12:10:14 +00:00
parent 3c7527988e
commit e1874f9b6a
71 changed files with 2198 additions and 145 deletions
@@ -26,7 +26,13 @@ export class AppContextMenu extends Component {
if (!this.menu.contains(e.target)) this.close();
});
document.addEventListener("scroll", () => this.close(), true);
window.addEventListener("resize", () => this.close());
this._lastWidth = window.innerWidth;
window.addEventListener("resize", () => {
if (window.innerWidth !== this._lastWidth) {
this._lastWidth = window.innerWidth;
this.close();
}
});
document.addEventListener("keydown", (e) => {
if (e.key === "Escape") this.close();
});
@@ -67,12 +73,17 @@ export class AppContextMenu extends Component {
this.render(items);
this.menu.classList.add("visible");
const rect = this.menu.getBoundingClientRect();
const vv = window.visualViewport;
const safeW = vv ? vv.width : window.innerWidth;
const safeH = vv ? vv.height : window.innerHeight;
const offX = vv ? vv.offsetLeft : 0;
const offY = vv ? vv.offsetTop : 0;
let left = x;
let top = y;
if (left + rect.width > window.innerWidth) left = window.innerWidth - rect.width - 8;
if (top + rect.height > window.innerHeight) top = window.innerHeight - rect.height - 8;
this.menu.style.left = Math.max(8, left) + "px";
this.menu.style.top = Math.max(8, top) + "px";
if (left + rect.width > offX + safeW) left = offX + safeW - rect.width - 8;
if (top + rect.height > offY + safeH) top = offY + safeH - rect.height - 8;
this.menu.style.left = Math.max(offX + 8, left) + "px";
this.menu.style.top = Math.max(offY + 8, top) + "px";
}
close() {