fix: add credentials to fetch calls for authenticated API requests

Fix "Failed to load on projects" error by including credentials in all
fetch calls to /api/* endpoints. The session cookie must be sent with
requests for requireAuth middleware to authenticate users.

Changes:
- projects.js: Add credentials: 'include' to all 6 API fetch calls
  (loadProjects, saveProject, deleteProject, loadDeletedProjects,
   restoreProject, permanentDeleteProject)
- sessions-landing.js: Add credentials to 3 API fetch calls
  (loadSessionsAndProjects, moveSessionToProject, context menu
   suggestions)

Resolves issue where projects page showed "Failed to load projects"
error on https://www.rommark.dev/claude

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
uroma
2026-01-19 17:43:39 +00:00
Unverified
parent d4957b70f0
commit e869eaff9c
2 changed files with 19 additions and 8 deletions

View File

@@ -114,8 +114,8 @@ async function loadSessionsAndProjects() {
try {
// Fetch both sessions and projects in parallel
const [sessionsRes, projectsRes] = await Promise.all([
fetch('/claude/api/claude/sessions'),
fetch('/api/projects')
fetch('/claude/api/claude/sessions', { credentials: 'include' }),
fetch('/api/projects', { credentials: 'include' })
]);
if (!sessionsRes.ok) throw new Error('Failed to load sessions');
@@ -811,7 +811,9 @@ async function showSessionContextMenu(event, sessionId) {
// Fetch project suggestions
let suggestions = [];
try {
const res = await fetch(`/api/projects/suggestions?sessionId=${sessionId}`);
const res = await fetch(`/api/projects/suggestions?sessionId=${sessionId}`, {
credentials: 'include'
});
if (res.ok) {
const data = await res.json();
suggestions = data.suggestions || [];
@@ -940,6 +942,7 @@ async function moveSessionToProject(sessionId, projectId) {
const res = await fetch(`/api/projects/sessions/${sessionId}/move`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({ projectId })
});