Compare commits

...

3 commits

Author SHA1 Message Date
Agent
49df66a58a Fix error message when saving email prefs fails
Some checks failed
CI / lint-check-build (pull_request) Has been cancelled
2026-08-25 10:32:51 -04:00
Agent
bced45814b Merge branch 'dev' into email-notifications 2026-08-25 10:25:53 -04:00
Agent
e3e2e2f57c Onboarded to fragua
Some checks failed
CI / lint-check-build (push) Has been cancelled
2026-08-25 10:23:35 -04:00
4 changed files with 63 additions and 6 deletions

11
.fragua/config.yaml Normal file
View file

@ -0,0 +1,11 @@
# fragua project config — project-specific knobs only.
# Generic preferences live in ~/.fragua/config.yaml.
# Stable project identity. Committed so every clone shares it and runs
# stay attributable across machines — do not change it.
id: 01a03577-18d7-7f10-bcee-144a07a22c20
name: flotilla
tier: fork
# Uncomment if the project needs a per-worktree bootstrap command:
# bootstrap: "bun install --frozen-lockfile"

11
.gitignore vendored
View file

@ -81,3 +81,14 @@ CLAUDE.md
.DS_Store
Thumbs.db
package-lock.json
# fragua runtime — never commit these
.fragua/runs/
.fragua/worktrees/
.fragua/blobs/
.fragua/fragua.db*
.fragua/daemon/
# fragua — always commit these (negative patterns for clarity)
!.fragua/config.yaml
!.fragua/workflows/

38
scripts/checks Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
lint () {
echo "::group::lint"
pnpm lint
echo "::endgroup::"
}
check () {
echo "::group::typecheck"
pnpm check
echo "::endgroup::"
}
build () {
echo "::group::build"
pnpm build
echo "::endgroup::"
}
no_local_overrides () {
echo "::group::no-local-overrides"
# Make sure no "link:" overrides are committed — those break every other clone
if grep -q 'link:' package.json pnpm-workspace.yaml 2>/dev/null; then
echo "Some packages are linked to local files!"
exit 1
fi
echo "::endgroup::"
}
steps="${*:-lint check no_local_overrides build}"
for step in $steps; do
"$step"
done

View file

@ -61,15 +61,12 @@
await Mail.enable()
} catch (e) {
settings.email = false
console.error(e)
await sleep(300)
return pushToast({
theme: "error",
message: `Failed to enable email notifications.`,
action: {
message: "Details",
onclick: () =>
emailNotificationState.set({...emailNotificationState.get(), error: undefined}),
},
action: {message: "Details", onclick: () => {}},
})
}
} else if (!settings.email) {
@ -198,7 +195,7 @@
</FieldInline>
{/if}
{#if $emailNotificationState.error}
<div class="text-sm text-red-500 bg-red-50 rounded-lg p-3">
<div class="text-sm text-error p-3">
{$emailNotificationState.error}
</div>
{/if}