Auth flow refactor, project requests, and routing updates
- Add server-side auth token loader (auth.server.ts) with SSR cookie forwarding - Add project-requests client for explicit/signal/existing issue dispatch - Refactor auth layout and app layout for SSR auth gating - Update auth-client and auth-provider for convex token flow - Extend project-issue primitives with request result schema - Wire projectIssues backend mutation for request handling - Update slice-one page and project-workspace hook - Adjust routes (remove unused), Caddy config, and env templates
This commit is contained in:
@@ -29,6 +29,17 @@ describe("project issue primitives", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("accepts an existing issue request without creating a duplicate", () => {
|
||||
const request = Effect.runSync(
|
||||
decodeProjectIssueRequest({
|
||||
issueId: "issue-1",
|
||||
kind: "existing",
|
||||
})
|
||||
);
|
||||
|
||||
expect(request).toEqual({ issueId: "issue-1", kind: "existing" });
|
||||
});
|
||||
|
||||
it("rejects invalid issue drafts before persistence", () => {
|
||||
const error = Effect.runSync(
|
||||
Effect.flip(
|
||||
|
||||
@@ -35,6 +35,11 @@ export const ProjectIssueDraft = Schema.Struct({
|
||||
});
|
||||
export type ProjectIssueDraft = typeof ProjectIssueDraft.Type;
|
||||
|
||||
export const ExistingProjectIssueRequest = Schema.Struct({
|
||||
issueId: ProjectIssueId,
|
||||
kind: Schema.Literal("existing"),
|
||||
});
|
||||
|
||||
export const ExplicitProjectIssueRequest = Schema.Struct({
|
||||
body: Schema.String,
|
||||
kind: Schema.Literal("explicit"),
|
||||
@@ -48,6 +53,7 @@ export const SignalProjectIssueRequest = Schema.Struct({
|
||||
});
|
||||
|
||||
export const ProjectIssueRequest = Schema.Union([
|
||||
ExistingProjectIssueRequest,
|
||||
ExplicitProjectIssueRequest,
|
||||
SignalProjectIssueRequest,
|
||||
]);
|
||||
@@ -186,7 +192,7 @@ export const decodeProjectIssueRequest = (
|
||||
() =>
|
||||
new ProjectIssueRequestError({
|
||||
message:
|
||||
"Use a signal request or an explicit request with projectId, title, and body",
|
||||
"Use an existing issue, signal request, or explicit request with projectId, title, and body",
|
||||
reason: "InvalidInput",
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user