mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-25 10:29:33 +01:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f4b2b8a17 | ||
|
|
a531f48e17 | ||
|
|
7d5ea0bd50 | ||
|
|
a842f2db4d |
No files matched your search
@@ -52,8 +52,16 @@ Thumbs.db
|
|||||||
# Generated output
|
# Generated output
|
||||||
out/
|
out/
|
||||||
screenshots-echo-diag/
|
screenshots-echo-diag/
|
||||||
|
screenshots-readme/
|
||||||
|
screenshots-readme-real/
|
||||||
|
screenshots-real/
|
||||||
scripts/remotion/out/
|
scripts/remotion/out/
|
||||||
|
|
||||||
|
# Local UI/README capture scratch (screenshot runs, design mockups). Not build
|
||||||
|
# output, but never meant for git — an unqualified `git add -A` during a COM has
|
||||||
|
# swept dirs like these into a release before.
|
||||||
|
design-explorations/
|
||||||
|
|
||||||
# Artifacts that should not be tracked
|
# Artifacts that should not be tracked
|
||||||
test-results/
|
test-results/
|
||||||
tmp/
|
tmp/
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# aicodeman
|
# aicodeman
|
||||||
|
|
||||||
|
## 1.3.5
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- a842f2d: fix(auth): slide the session cookie so active users aren't logged out
|
||||||
|
|
||||||
|
Re-issue the `codeman_session` cookie on every authenticated request so the
|
||||||
|
browser cookie lifetime tracks the server-side sliding TTL (the session store
|
||||||
|
already uses `refreshOnGet`). Previously the cookie was only set on the Basic
|
||||||
|
Auth path with a fixed 24h lifetime from login, so the browser dropped it
|
||||||
|
mid-use; the next request arrived cookie-less, fell through to Basic Auth and
|
||||||
|
popped the native username/password dialog, perceived as a random logout while
|
||||||
|
actively working.
|
||||||
|
|
||||||
## 1.3.4
|
## 1.3.4
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ When user says "COM":
|
|||||||
|
|
||||||
CI runs `npm run check:lockfile` on every push/PR, so lockfile drift fails the build even if the `version-packages` script is bypassed.
|
CI runs `npm run check:lockfile` on every push/PR, so lockfile drift fails the build even if the `version-packages` script is bypassed.
|
||||||
|
|
||||||
**Version**: 1.3.4 (must match `package.json`)
|
**Version**: 1.3.5 (must match `package.json`)
|
||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.3.4",
|
"version": "1.3.5",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.3.4",
|
"version": "1.3.5",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.3.4",
|
"version": "1.3.5",
|
||||||
"description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
|
"description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
|||||||
@@ -151,6 +151,19 @@ export function registerAuthMiddleware(app: FastifyInstance, https: boolean): Au
|
|||||||
// Use get() instead of has() so refreshOnGet extends the TTL on active sessions
|
// Use get() instead of has() so refreshOnGet extends the TTL on active sessions
|
||||||
const sessionToken = req.cookies[AUTH_COOKIE_NAME];
|
const sessionToken = req.cookies[AUTH_COOKIE_NAME];
|
||||||
if (sessionToken && authSessions.get(sessionToken) !== undefined) {
|
if (sessionToken && authSessions.get(sessionToken) !== undefined) {
|
||||||
|
// Sliding cookie: re-issue on every authenticated request so the browser
|
||||||
|
// cookie lifetime tracks the server-side sliding TTL (refreshOnGet above).
|
||||||
|
// Without this the cookie has a fixed lifetime from login; the browser
|
||||||
|
// drops it mid-use, the next request arrives cookie-less and falls through
|
||||||
|
// to Basic Auth — popping the native username/password dialog, which reads
|
||||||
|
// as a random logout while actively working.
|
||||||
|
reply.setCookie(AUTH_COOKIE_NAME, sessionToken, {
|
||||||
|
httpOnly: true,
|
||||||
|
secure: https,
|
||||||
|
sameSite: 'lax',
|
||||||
|
maxAge: AUTH_SESSION_TTL_MS / 1000, // seconds
|
||||||
|
path: '/',
|
||||||
|
});
|
||||||
done();
|
done();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user