Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
f40307e
test(frontend): cover authentication boundary failures
Sep 9, 2026
18abec9
test(frontend): cover malformed evidence URLs
Sep 9, 2026
c4f6e40
docs: record stacked successor workflow evidence
Sep 9, 2026
94f76e1
docs(agents): remove unverified concurrent-run classification
seonghobae Sep 9, 2026
b66f0af
test(frontend): preserve verification failure copy
Sep 9, 2026
0900449
docs(agents): record Colima ownership evidence
Sep 9, 2026
919bc99
docs(agents): record hosted security workflow RCA
Sep 9, 2026
af040ef
chore(successor): converge on calendar coverage and drop local-only a…
seonghobae Sep 9, 2026
d0abddb
fix(frontend): preserve verification error causes
Sep 9, 2026
cb05520
docs: record exact-head KPI observations
Sep 9, 2026
a0acd38
docs(agents): record frontend coverage timeout
Sep 9, 2026
fa96fa0
chore: converge verification child onto current #983 head
seonghobae Sep 9, 2026
3fb27c9
Merge remote-tracking branch 'origin/codex/app-auth-kpi-20260909' int…
Sep 9, 2026
e53377c
test: address current-head review findings
Sep 9, 2026
531f48e
docs(agents): record live runner verification
Sep 9, 2026
b7e5e74
chore: converge auth successor on repaired parent
seonghobae Sep 9, 2026
1f94b7a
Merge remote-tracking branch 'origin/codex/app-auth-kpi-20260909' int…
Sep 9, 2026
1b0ed33
fix(frontend): keep verification failures buyer-safe
Sep 9, 2026
8b30c6d
docs(gaps): refresh exact-head delivery evidence
Sep 9, 2026
42a1243
docs(gaps): record ready-PR collision audit
Sep 9, 2026
64447e4
chore: converge #985 onto current #983 head
seonghobae Sep 9, 2026
ab857c3
chore: converge #985 on current #983 head
seonghobae Sep 9, 2026
771d925
fix(frontend): distinguish verification request failures
Sep 9, 2026
bfe1ff4
chore(frontend): converge #985 on calendar contract repair
seonghobae Sep 9, 2026
cd896e5
Merge remote-tracking branch 'origin/codex/e2e-auth-redirect-main-202…
Sep 9, 2026
acfd71b
Merge remote-tracking branch 'origin/codex/e2e-auth-redirect-main-202…
Sep 9, 2026
de3b9ad
Merge #983 parent into #985 successor
seonghobae Sep 9, 2026
ea0eaa8
Merge current #983 parent into #985 successor
seonghobae Sep 9, 2026
ebdce7d
chore(successor): converge coverage denominator repair
seonghobae Sep 9, 2026
3ecf9cc
chore(successor): converge construct family coverage parent
seonghobae Sep 9, 2026
b16bde4
chore(successor): converge CSS indentation coverage parent
seonghobae Sep 9, 2026
138130a
chore(successor): converge parent table-boundary coverage
seonghobae Sep 9, 2026
f1e3c06
chore(frontend): converge #985 on auth fallback coverage parent
seonghobae Sep 9, 2026
59febc0
chore: converge auth successor on current parent
seonghobae Sep 9, 2026
65dc2ec
chore(frontend): converge #985 onto focus-handoff parent
seonghobae Sep 9, 2026
bdc0bd5
merge: converge auth successor onto current product head
seonghobae Sep 9, 2026
f456fc5
merge: converge auth successor on read-model coverage head
seonghobae Sep 9, 2026
70775fb
merge: converge auth successor on source-indentation parent
seonghobae Sep 9, 2026
604cf58
merge: converge auth successor on unknown-family coverage parent
seonghobae Sep 9, 2026
0560384
chore: converge auth successor onto current product parent
seonghobae Sep 9, 2026
3535ab6
chore: converge auth successor onto current product parent
seonghobae Sep 9, 2026
1a85ee6
chore: converge auth successor onto structured-image coverage parent
seonghobae Sep 9, 2026
9bb9b14
chore(stack): converge successor onto #983 locale coverage head
seonghobae Sep 9, 2026
015c5e3
chore(stack): converge #985 onto #983 8c3f2048
seonghobae Sep 9, 2026
2becae4
chore: converge auth successor onto current product head
seonghobae Sep 9, 2026
c88b729
merge: converge #985 onto exact #983 parser boundary
seonghobae Sep 9, 2026
4107944
merge: converge #985 onto exact #983 GFM table repair
seonghobae Sep 9, 2026
9f7855d
chore: converge #985 onto #983 exact parent
seonghobae Sep 10, 2026
9dc7aaf
chore: converge auth successor onto dashboard navigation head
seonghobae Sep 10, 2026
f0a68f4
chore: converge auth successor onto Ask Agent outage head
seonghobae Sep 10, 2026
7dadf6d
chore: converge auth successor onto post-body parser repair
seonghobae Sep 15, 2026
a42c8eb
chore: converge auth successor onto attributed script-tag repair
seonghobae Sep 16, 2026
76dc6aa
chore(stack): converge #985 onto #983 embedded-image repair
seonghobae Sep 16, 2026
65ee18f
chore(stack): converge #985 onto #983 quoted-boundary RED
seonghobae Sep 16, 2026
d7ffc10
chore(stack): converge #985 onto #983 boundary repair
seonghobae Sep 16, 2026
283c0b8
chore(stack): converge #985 onto #983 coverage repair
seonghobae Sep 16, 2026
7ff4995
chore(stack): converge #985 onto #983 non-DOM coverage
seonghobae Sep 16, 2026
2ca71e2
chore(stack): converge #985 onto semantic br repair
seonghobae Sep 16, 2026
a459470
chore(stack): converge #985 onto scanner coverage slice
seonghobae Sep 16, 2026
d711c5f
chore(stack): converge #985 onto ontology extension coverage
seonghobae Sep 16, 2026
d7016b4
chore(stack): converge #985 onto catalog coverage
seonghobae Sep 16, 2026
036b52f
chore(stack): converge #985 onto post-body continuation repair
seonghobae Sep 22, 2026
d20f4c8
chore(stack): converge #985 on current #983 coverage repair
seonghobae Sep 22, 2026
3c5ade0
chore(stack): converge #985 on malformed-markup coverage child
seonghobae Sep 22, 2026
5876394
chore(stack): converge #985 on Ask transport coverage child
seonghobae Sep 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -494,3 +494,11 @@ When an E2E login helper tolerates a narrowly identified navigation error,
reassert the expected authorization URL before locating or filling credential
fields. A matching form label is not evidence that the navigation reached its
expected destination; retain the post-login destination check as well.

For local frontend KPI reproduction, use one controlled Vitest invocation.
Starting a second coverage or test process while the full run is active can
exhaust local resources and create unrelated timeout failures across
independent component tests. Those failures are execution noise, not product
evidence. The authenticated app boundary has explicit tests for provider
authentication errors and missing access tokens, preserving its fail-closed
customer path while closing the corresponding `App.tsx` branches.
22 changes: 22 additions & 0 deletions frontend/src/App.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,13 @@ describe("App, unauthenticated", () => {
render(<App showLabPanels />);
expect(screen.getByRole("status")).toHaveTextContent("Loading authentication state...");
});

it("shows the provider error without entering the product shell", () => {
mockAuth = { ...mockAuth, error: new Error("Authentication failed") };
render(<App />);
expect(screen.getByText("Authentication failed")).toBeInTheDocument();
expect(screen.queryByRole("button", { name: /log in/i })).toBeNull();
Comment thread
github-actions[bot] marked this conversation as resolved.
Outdated
Comment thread
coderabbitai[bot] marked this conversation as resolved.
});
});

function jsonResponse(body: unknown): Response {
Expand All @@ -118,6 +125,12 @@ describe("App, authenticated", () => {
};
});

it("fails closed when authentication has no access token", () => {
mockAuth = { ...mockAuth, user: { profile: { preferred_username: "demo.analyst" } } };
render(<App />);
expect(screen.getByText("Authenticated, but no access token was returned.")).toBeInTheDocument();
});

function stubBackend(options?: {
admin?: boolean;
calendarCommitments?: unknown[];
Expand Down Expand Up @@ -3112,6 +3125,15 @@ describe("App, authenticated", () => {
expect(screen.getByLabelText("VOC verification: Northridge Grid").tagName).toBe("SPAN");
});

it("keeps malformed verification evidence non-clickable", async () => {
stubBackend({ verificationEvidenceUrl: "https://[malformed" });
render(<App showLabPanels />);
await userEvent.click(await screen.findByRole("button", { name: "View post: Public post" }));
const badge = await screen.findByLabelText("VOC verification: Northridge Grid");
expect(badge.tagName).toBe("SPAN");
expect(screen.queryByRole("link", { name: "VOC verification: Northridge Grid" })).not.toBeInTheDocument();
});

it("lets post_admin verify pending counterparties against web search", async () => {
const fetchMock = stubBackend({ admin: true });
render(<App showLabPanels />);
Expand Down
Loading