Skip to content

Major development#16

Merged
AperturePlus merged 71 commits into
mainfrom
develop
May 21, 2026
Merged

Major development#16
AperturePlus merged 71 commits into
mainfrom
develop

Conversation

@AperturePlus
Copy link
Copy Markdown
Owner

No description provided.

AperturePlus and others added 30 commits May 12, 2026 11:46
The file preview dialog rendered two overlapping close buttons (one from
the dialog wrapper, one from FileDetailPanel's legacy sidebar header).
Remove the inner one since FileDetailPanel now only lives inside the
dialog.

The BulkActionBar pushed the file list downward when selecting, causing
misclicks. Promote it to a floating overlay anchored bottom-center of
the page body with a slide-up transition — the list no longer shifts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…licker

The /agent routes lived under templates/AgentLayout in isolation, with
no app shell or sidebar nav — users had no way back to /files. Nest the
route under MainLayout so the LeftSidebar (which already has /agent and
/files entries) is always present; strip templates/AgentLayout's
viewport sizing and duplicate padding since MainLayout now owns the
content frame.

The file list flickered on every auto-refresh and post-mutation refetch
because fetchFolderContents flipped isLoading=true, unmounting FileTable
and mounting an EmptyState placeholder before remounting the table. Add
a silent option to fetchFolderContents — silent calls leave isLoading
and items intact and swap items in place when the response arrives. The
auto-refresh timer and all post-mutation callers (create folder, delete,
batch move, batch delete, upload) opt in. MyFiles template also keeps
FileTable mounted whenever items > 0, so loading placeholder is only
visible on a true first load.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Phase 4 of the 8-stage frontend redesign. Reshapes the three remaining
file-surface pages against the new token system, dropping legacy
--color-*/--border-radius-* usage and pulling visual logic into
single-purpose organisms.

New organisms:
- organisms/sharing/  SharedReceivedTable, SharedLinksTable, SharedBatchBar
- organisms/trash/    TrashTable (near-expiry rows tint --status-warning)
- organisms/share/    ShareInfoCard, ShareAccessPanel, ShareActionsPanel

New composables (collapses page-level setup boilerplate):
- useSharingCenter — tab/selection/CRUD for the sharing page
- useShareAccess   — load/access/preview/download/save for the public page

EmptyState gains an 'error' variant (replaces inline error states in
ShareAccess) and accepts a `message` override for non-files contexts.

Pages drop:
- SharedWithMe.vue  386 → 66 lines
- Trash.vue         258 → 76 lines
- ShareAccess.vue   363 → 83 lines

Dev library /__dev/library gets three new sections (Organisms · Sharing
/ Trash / Share) exercising each new organism in all states.

17 new specs; full suite 263 tests / 50 files green; typecheck clean.
Legacy components/common/SelectFolderDialog still imported by ShareAccess
— deferred to P8 cleanup along with the other common/ dialogs.

Plan: docs/superpowers/plans/2026-05-12-frontend-redesign-p4-other-file-surfaces.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds canRestore + restoreConflicts to TrashTable.spec.ts fixtures and
the dev Library trashDemoItems. P4 tightened the type but vue-tsc -b
caught these only in build mode (--noEmit was lenient). Unblocks P5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Shared visual shell driven by a discriminated `mode` prop. Each mode
renders its own field set; submit emits a typed payload so pages stay
thin. Includes show/hide eye toggle for password fields and uses
existing Checkbox / Input / Text atoms + Button molecule. 9 spec
cases cover all three modes + error/success display + isSubmitting
state + initial prefill + password visibility toggle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a live preview for AuthForm with a mode picker, three label
bundles, and a payload pre block so the typed submit shape is visible.
Mock account hint slot is exercised only in login mode.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drops 267 lines of inline form / styles / gradient buttons / glass card
in favor of mounting AuthForm with a login-mode payload. Remember-me
prefill, mock-account hint slot, forgot-password secondary slot, and
"create account" footer slot all preserved. Behavior parity: login
redirects to /files or /verify-email based on emailVerified.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drops 225 lines of inline form / styles for a thin orchestration shell.
Password mismatch validation stays in the page (AuthForm doesn't know
about confirmPassword equality). Chinese labels preserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drops 151 lines of inline form / styles. Chinese strings preserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
VerifyEmail has no form fields, so AuthForm isn't a fit. Drops the
old 195-line glass card for a token-aligned card built from Text /
Spinner / Dot atoms + Button molecule. State machine
(idle/pending/success/error) preserved; resend logic intact; "Back to
login" and "Enter files" footer buttons intact.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AperturePlus and others added 29 commits May 15, 2026 09:37
…lidation

- Replace SHA256 with HMAC-SHA256 for refresh token hashing using
  �ffective_token_hash_secret (falls back to JWT_SECRET_KEY)
- Add �ssert_runtime_security() check on startup for secret key length
- Add
ormalized_email_verify_base_url and mail_configuration_issues
  to Settings
- Remove sensitive data (email, token) from auth event payloads
- Add schema compatibility check for 
egistration_email_domain_rule table
- Update .env.example with token hash secret and SMTP config placeholders
…rvice

- Add RegistrationEmailDomainRule model, schema, service, and admin CRUD routes
- Add email regex domain pattern matching with ReDoS protection
- Add VerificationEmailDeliveryService using fastapi-mail for SMTP delivery
- Add Flyway migrations V11 (table) and V12 (seed SCU domain rule)
- Wire domain rule service into DI and schema compatibility check
- Add backend tests for routes, service, and DB engine schema check
- Inject VerificationEmailDeliveryService into AuthService for SMTP delivery
- Call RegistrationEmailDomainRuleService.assert_email_allowed on register
  and update_profile (email change only)
- Add _invalidate_active_verification_tokens to invalidate old tokens on re-issue
- Add _send_verification_email_or_raise to separate event publishing from actual
  email sending, raising 503 on delivery failure
- Add _assert_token_length to reject obviously invalid short tokens
- Remove sensitive data (email, token) from published auth events
- Add tests for delivery failure, domain rule skip on unchanged email,
  and token length validation
- Add mockRegistrationEmailDomainRules state array to mock state
- Add domain regex validation in auth mock (register endpoint)
- Add full CRUD mock handlers in user mock (list, create, update, delete)
- Enforce domain rule check on profile email update mock
…tion flow

- Add Registration Email Domain Rules management card to admin Dashboard
  with search/filter, create, toggle, edit, and delete controls
- Enhance VerifyEmail page with unauthenticated and idle states
- Skip fetchStorageStats call when email is unverified in user store
- Add 403 email-verification-required interceptor in http util to
  auto-redirect to /verify-email
Three-column Industrial Dashboard layout (SessionList / TaskTimeline /
PlanInspector), zero Naive UI, 4 backfill molecules (Modal / Pagination /
FileDrop / Select), 10 agent organisms, 2 composables with localStorage
persistence. Also documents the TS union-narrowing fix that unblocks CI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
16 tasks: 4 backfill molecules (Modal/Pagination/FileDrop/Select),
2 composables (useAgentSession with localStorage, useAgentSkills),
10 agent organisms, 3 page rewrites, dev library wiring, acceptance.
TS pollers (pollPlanJob/pollExecuteJob) included verbatim to unblock CI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@AperturePlus AperturePlus merged commit 8f3ca61 into main May 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants