Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
7609351
🚀 harden deploy pipeline and stack config
dotcomnerd Aug 30, 2026
5a7d69d
🧹 remove legacy history and duplicate routes
dotcomnerd Aug 30, 2026
7f872a2
🎛️ expand native movi player core
dotcomnerd Aug 30, 2026
3692ac7
🎬 wire movi player through web playback
dotcomnerd Aug 30, 2026
af6b061
🎌 anime playback policy and segment sync
dotcomnerd Aug 30, 2026
c18aeb3
📺 tv detail bootstrap and href routing
dotcomnerd Aug 30, 2026
1f94506
💾 revise progress storage and resume flow
dotcomnerd Aug 30, 2026
eb8d30f
⚡ hls quality startup scoring and abort
dotcomnerd Aug 30, 2026
ed90bdf
🔌 drop animestream and reorder scrape providers
dotcomnerd Aug 30, 2026
4fa4551
🚩 simplify flipt flags evaluation
dotcomnerd Aug 30, 2026
6fcf37f
🦸 upgrade hero scrape playback panels
dotcomnerd Aug 30, 2026
57def78
🔄 stabilize hydration and scroll fetch hooks
dotcomnerd Aug 30, 2026
57c02cf
📋 dedupe watchlist checks and up next routing
dotcomnerd Aug 30, 2026
cfbf5fa
🔍 normalize anime hrefs in search merge
dotcomnerd Aug 30, 2026
fda17f3
🎨 sync subtitle appearance across tabs
dotcomnerd Aug 30, 2026
06d864d
📚 guard stale mal list patch responses
dotcomnerd Aug 30, 2026
707cb7d
🗂️ tune query prefetch keys and posters
dotcomnerd Aug 30, 2026
3862e94
🌐 allow shared routes on ffs host
dotcomnerd Aug 30, 2026
6368c35
▶️ hydrate-safe movie watch button label
dotcomnerd Aug 30, 2026
9732865
🧽 run format and fix up tests
dotcomnerd Aug 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ yarn-debug.log*
.DS_Store
.env
.env.*
apps/web/.env
apps/web/.env.*
certificates
1 change: 0 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ FLIPT_URL=http://127.0.0.1:8090
FLIPT_ENVIRONMENT=default
FLIPT_NAMESPACE=default
FLIPT_API_TOKEN=
FLIPT_FLAG_CACHE_TTL_MS=600000
# Public asset CDN origin (must match next.config assetPrefix / Bunny pull zone)
NEXT_PUBLIC_CDN_ORIGIN=https://cdn.nyumatflix.com
IMGPROXY_PORT=9081
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ env:
FLIPT_URL: http://flipt:8080
FLIPT_ENVIRONMENT: default
FLIPT_NAMESPACE: default
FLIPT_FLAG_CACHE_TTL_MS: "30000"

on:
push:
Expand Down Expand Up @@ -87,7 +86,6 @@ jobs:
FLIPT_ENVIRONMENT=${FLIPT_ENVIRONMENT}
FLIPT_NAMESPACE=${FLIPT_NAMESPACE}
FLIPT_API_TOKEN=${FLIPT_API_TOKEN}
FLIPT_FLAG_CACHE_TTL_MS=${FLIPT_FLAG_CACHE_TTL_MS}
EOF

- name: Build WASM and app
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ node_modules/

# testing
/coverage
/benchmark-results/

# next.js
**/.next/
Expand Down
15 changes: 7 additions & 8 deletions .husky/check-emoji.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
import fs from "fs";
import emojiRegex from "emojibase-regex";

const msgFile = process.argv[2];

if (!msgFile) {
console.error("No commit message file found");
process.exit(1);
process.exit(2);
}

const msg = fs.readFileSync(msgFile, "utf8");
const firstLine = (msg.split(/\r?\n/)[0] ?? "").trim();

// emojibase-regex covers most sequences; avoid the `g` flag so .test() does not
// depend on lastIndex. Extended_Pictographic catches edge cases the base pattern misses.
const emojibasePattern = new RegExp(emojiRegex.source, "u");
const hasEmojiInSubject =
emojibasePattern.test(firstLine) ||
/\p{Extended_Pictographic}/u.test(firstLine);
/\p{Extended_Pictographic}/u.test(firstLine) ||
/\p{Emoji_Presentation}/u.test(firstLine);

if (hasEmojiInSubject) {
process.exit(0);
}

if (hasEmojiInSubject) process.exit(0);
process.exit(1);
42 changes: 35 additions & 7 deletions .husky/prepare-commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,40 @@ if ! command -v node >/dev/null 2>&1; then
fi
fi

# Always run the checker when possible so we skip emojify if the subject already has an emoji.
# Previously, the no-bun path skipped the checker and always ran emojify (duplicate emojis).
if command -v bun >/dev/null 2>&1; then
bun "$SCRIPT_DIR/check-emoji.js" "$1" || bunx --bun @humankode/git-commit-emojify@latest "$1"
elif command -v node >/dev/null 2>&1; then
node "$SCRIPT_DIR/check-emoji.js" "$1" || npx --yes @humankode/git-commit-emojify@latest "$1"
else
run_checker() {
if command -v bun >/dev/null 2>&1; then
bun "$SCRIPT_DIR/check-emoji.js" "$1"
return $?
fi

if command -v node >/dev/null 2>&1; then
node "$SCRIPT_DIR/check-emoji.js" "$1"
return $?
fi

return 2
}

run_emojify() {
if command -v bun >/dev/null 2>&1; then
bunx --bun @humankode/git-commit-emojify@latest "$1"
return $?
fi

npx --yes @humankode/git-commit-emojify@latest "$1"
}

run_checker "$1"
status=$?

if [ "$status" -eq 0 ]; then
exit 0
fi

if [ "$status" -eq 1 ]; then
run_emojify "$1"
exit $?
fi

echo "prepare-commit-msg: emoji check failed (exit $status)" >&2
exit "$status"
12 changes: 11 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ FROM oven/bun:1 AS builder
WORKDIR /app

ENV NEXT_TELEMETRY_DISABLED=1
ENV SKIP_ENSURE_ENV=1

ARG TMDB_API_KEY
ARG CAP_API_ENDPOINT
ARG SKIP_PLAYER_BUILD=0
ENV TMDB_API_KEY=$TMDB_API_KEY
ENV CAP_API_ENDPOINT=$CAP_API_ENDPOINT

Expand All @@ -23,7 +25,15 @@ COPY packages ./packages
RUN test -f packages/player/dist/wasm/movi.js || (echo "missing packages/player/dist/wasm/movi.js — run: bunx turbo build:wasm --filter=@nyumatflix/player" && exit 1)
RUN node apps/web/scripts/prepare-anime-mappings.mjs
RUN bunx turbo build --filter=@calluspirates/shared --filter=@nyumatflix/playback
RUN cd packages/player && bun run build
RUN if [ "$SKIP_PLAYER_BUILD" = "1" ] && \
[ -f packages/player/dist/element.js ] && \
[ -f packages/player/dist/wasm/movi.js ] && \
[ -f apps/web/public/vendor/player/element.js ]; then \
echo "[build] player artifacts present — skipping player rebuild"; \
else \
cd packages/player && bun run build; \
fi
RUN cd apps/web && bun install --foreground-scripts sharp @img/sharp-linux-x64
RUN cd apps/web && bun run build

FROM node:24.15.0-slim AS runner
Expand Down
23 changes: 0 additions & 23 deletions app/api/search-prompts/route.ts

This file was deleted.

48 changes: 0 additions & 48 deletions app/api/user/update-name/route.ts

This file was deleted.

110 changes: 0 additions & 110 deletions app/history/history-client.tsx

This file was deleted.

20 changes: 0 additions & 20 deletions app/history/page.tsx

This file was deleted.

Loading
Loading