Spaces:
Running
Running
Commit History
25 days ago
-
feat(credentials): implement 3A Swiss Precision Circular Authenticity Seal with unslop-ui copy
f37fbe6 -
fix(brand): redesign authenticity seal badge with official GetCert emblem and clean embed actions
b919035
26 days ago
-
fix(cert): auto-issue certificate on payment confirmation & sync course to 100% certified
46ab86e
29 days ago
-
feat: deploy Gemma 4 optimizations and backend updates to HF Spaces
b69dd51
-
fix(yt): add multi-key Google Data API fallback and bounded timeouts for HF datacenter execution
0ca32d5 -
feat: integrate Innertube transcript extraction and Kev System 1 curriculum decision model
82855ca -
feat: add QuickCert Innertube scraper fallback and perfectly match GetCert platform UI/UX
a1fe4fb -
fix: make YouTube metadata extraction resilient without API key and support Rust/Systems courses
cb6ced0 -
feat: Add GetCert YT competency certification engine and assessment flow
515e3fb -
fix(profile): safely query user profile and cooldown without non-existent schema column
03df63e -
fix(api): ensure static routes have precedence over parameterized routes
ebd6610 -
feat(auth): enforce legal name notice, global showcase propagation, and 60-day cooldown
46a7e69
-
fix: resolve certificateType reference error, sync my_courses with admin backend and certificates fallback, and ensure resume visibility
7087641 -
feat: full-screen free course workspace, My Courses resumability, name/email claim fix, My Certificates sync, and QR-free certificate
3360116
-
feat: real-time free course auto-enrichment on Supabase insert with beginner crash course filter and 10 MCQs
7feb531 -
fix(cors): allow *.vercel.app origins and update package-lock.json
557a65c -
feat: add free starter courses, Google OAuth integration, and resilient profile sync
6f30bfd -
fix(payment): resolve Cashfree webhook timestamp bug, multi-layer status reconciliation and auto-issuance
c637b42
-
fix: instant onboarding with localStorage-first check, grandfather old users, mandatory for new signups
- App.tsx: two-tier onboarding gate (localStorage sync check -> API fallback) - api/index.ts: grandfather users created before 2026-01-01 cutoff - AuthForm.tsx: sessionStorage flag on fresh signup for instant detection - OnboardingScreen.tsx: remove skip button, polish welcome header506c923
-
feat: normalize course titles into professional canonical titles and remove emojis across app
d08bef8 -
fix(api): close unclosed if block in handleVideoInfo to resolve TransformError on HF space
8fb4c57 -
fix(course): remove active lecture badge, display exact video duration with seconds, and standardize flat ₹79 QuickCert
ff96ce0 -
feat(course): display real YouTube video duration length and remove exam button from top header
00f820f
-
feat(ui): complete end-to-end Napkin UI & hand-written notes transformation across all screens
1b5ee98 -
fix(assessment): repair unescaped quotes, missing commas and invalid escapes in LLM JSON, and add resilient skill-grounded fallback
24bcee4 -
fix(video): enforce strict topical relevance, add browser headers and timeout resilience to oEmbed verification, and fix catalog keyword pollution
f4ce387 -
perf(kev): serialize video validation & increase timeout to prevent lock contention
2c88eb0 -
fix(course-engine): eliminate premature 400 rejection and add Framer to design catalog
e5a8984 -
feat(course-engine): integrate Kev System 1 decision model & mandatory relevance gate
7e4fe1d
-
fix(youtube): multi-tier search with official YouTube Data API, fresh Innertube socket lifecycle, and query deduplication
9a97d34 -
feat: integrate Innertube API for high-speed robust dynamic YouTube course searches
35ea8b5 -
feat(yt): resilient multi-tier search with acronym expansion, EU consent bypass, 15s timeout, and semantic catalog safety net
932bdbb -
fix(search): eliminate effectiveKey distortion, preserve exact user skill query, and prevent generic token hijacking
254fd54 -
fix(auth, llm, yt): bypass browser Navigator LockManager lock collision, fix Gemma thinkingConfig and JSON extraction, and make YouTube initial data parser robust
373f801 -
feat(course): integrate zero-quota dynamic YouTube course search with oEmbed verification and accelerate generation speed
838e550
-
perf: server-side assessment pack cache
- Assessment packs cached in-process by (skill + module titles) for 6h, LRU-capped at 200 entries: repeat generations return instantly with zero LLM tokens, conserving Gemma's 16K TPM free-tier budget3e3208d -
fix: focus-loss anti-cheat false trigger + faster assessment output
- Anti-cheat now arms only after the learner starts answering; tabbing away during generation no longer wipes the fresh pack on return (root cause of 'generation failed' flash after successful load) - Focus-loss regeneration failure now restores the previous questions instead of showing the failed screen - Prompt: enforce concise explanations/options/rubrics to cut ~40% output tokens -> roughly halves generation wall time3eded06 -
perf+fix: fast & reliable assessment pipeline, JWT verification, payment-review route, payment polling fallback
- LLM client: disable thinking budget (auto-fallback), fail-fast on timeouts/aborts instead of 3x retry - Assessment: bounded oEmbed (1.5s race), maxTokens 8192->4096, default timeout 120s->90s - Frontend: background assessment prefetch while learning (both tracks), persisted in flow state - Theory grading: maxTokens 800, 45s cap - Security: verify JWT signatures via Supabase /auth/v1/user (60s cache) on user endpoints - Wire POST /api/v2/payment-review with timing-safe admin secret - Persist completed module IDs across resume; focus-loss anti-cheat question regeneration - 12s payment status polling fallback alongside Supabase realtime1c756f2 -
fix: normalize trailing slashes in resolveUrlPath and quiet Gradio default probe logs
e76971b
-
fix: allow HEAD requests on /api/v2/health to prevent 405 Method Not Allowed in UptimeRobot
874a65e
-
fix: update Graphic Design and UI/UX Design to active, embeddable YouTube video IDs
ce55db9 -
fix: remove visual skill coming-soon block and enable UI/UX Design Figma video course
6a5d797 -
feat: add and enable 1h15m Envato Tuts+ Graphic Design course on GetCert
2ba9469
-
feat: add MINT60 promo code discount, Huashu Design certificate revamp, and Cashfree paywall integration
6800903
-
fix: resolve public certificate RLS lookup issue
820f5c2
-
fix: update CORS fallback origin to getcert.eu.cc
685cc68
-
Overhaul getApprovedVideo with intent-matching algorithm
- Replace simple normalizeSkillKey lookup with keyword-scoring engine - Build comprehensive keyword index from video keys, titles, channel names, profile aliases, topicTags, and canonicalQueries - Add 200+ manual cross-mappings covering abbreviations, synonyms, frameworks, tools, and related terms - Add stop-word filtering (learn, tutorial, course, etc.) - Add multi-token match bonus and segment-position tiebreakers - Three-tier fallback: primary scoring (>=10), relaxed (>=5), direct slug - Achieves <5% fallback rate for legitimate skill inputs15ad23a -
Replace InnerTube with strict approved-video catalog
- videoSearch.ts: strip all InnerTube, scoring, ranking, validation code; simple getApprovedVideo lookup with docs-only fallback - videoCatalog.ts: replace CATALOG_ENTRIES + fallbackVideoIds with strict APPROVED_VIDEOS map keyed by normalized skill key; add getApprovedVideo() export; remove getCatalogEntriesForSkill(), getSeedCatalog(), VIDEO_CATALOG_BY_ID - generateAssessment.ts: replace fetchVideoCaptions (InnerTube-based) with oEmbed description fetch (no youtubei.js dependency)32465bb -
Fix InnerTube: custom fetch with UA+timeout, session retry, per-query timeout, local session gen
8073c29 -
Increase timeouts (InnerTube 5→15s, course 20→60s); fix logger to include context fields
c95273a