@vue-skuilder/standalone-ui 0.2.10 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{TagViewer-BJaOzkr6.js → TagViewer-g9RJS1r2.js} +2 -2
- package/dist/assets/{TagViewer-BJaOzkr6.js.map → TagViewer-g9RJS1r2.js.map} +1 -1
- package/dist/assets/{common-ui.es-CIGym5zn.js → common-ui.es-DhLJkoaY.js} +4 -4
- package/dist/assets/{common-ui.es-CIGym5zn.js.map → common-ui.es-DhLJkoaY.js.map} +1 -1
- package/dist/assets/common-ui.es-tuyYAsl3.js +1 -0
- package/dist/assets/{dist-SoAs4WNl.js → dist-CIWSsb1y.js} +8 -8
- package/dist/assets/dist-CIWSsb1y.js.map +1 -0
- package/dist/assets/{index-Bg37fxGA.js → index-CIllvcxx.js} +5 -5
- package/dist/assets/{index-Bg37fxGA.js.map → index-CIllvcxx.js.map} +1 -1
- package/dist/index.html +3 -3
- package/dist-lib/questions.cjs.js +8 -8
- package/dist-lib/questions.cjs.js.map +1 -1
- package/dist-lib/questions.mjs +23 -19
- package/dist-lib/questions.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/assets/common-ui.es-B4yuaOa1.js +0 -1
- package/dist/assets/dist-SoAs4WNl.js.map +0 -1
package/dist-lib/questions.mjs
CHANGED
|
@@ -24654,6 +24654,7 @@ var init_v4 = __esmMin((() => {
|
|
|
24654
24654
|
buildStrategyStateId: () => buildStrategyStateId,
|
|
24655
24655
|
captureMixerRun: () => captureMixerRun,
|
|
24656
24656
|
clearSrsBacklogDebug: () => clearSrsBacklogDebug,
|
|
24657
|
+
clearStaleSessionDebugState: () => clearStaleSessionDebugState,
|
|
24657
24658
|
computeDeviation: () => computeDeviation,
|
|
24658
24659
|
computeEffectiveWeight: () => computeEffectiveWeight,
|
|
24659
24660
|
computeOutcomeSignal: () => computeOutcomeSignal,
|
|
@@ -26647,8 +26648,8 @@ function hintsHtml(t) {
|
|
|
26647
26648
|
}
|
|
26648
26649
|
function backlogHtml(t) {
|
|
26649
26650
|
return t.length ? `<div style="margin-bottom:6px"><div style="color:#93c5fd">review backpressure</div>${t.map((t) => {
|
|
26650
|
-
let c = t.backlogMultiplier >=
|
|
26651
|
-
return `<div style="margin-left:6px"><span style="opacity:.7">${esc(t.courseId.slice(0, 8))}</span> due ${t.dueNow}/${t.scheduledTotal} <span style="opacity:.6">(healthy ${t.healthyBacklog})</span>${g}<div style="margin-left:6px">pressure <span style="color:${u}">\xD7${t.backlogMultiplier.toFixed(2)}
|
|
26651
|
+
let c = t.backlogMultiplier >= 3, u = t.backlogMultiplier <= 1 ? "#86efac" : c ? "#fca5a5" : "#fcd34d", d = t.backlogMultiplier > 1 ? `climbing (\xD7${t.backlogGrowthRate.toFixed(2)} per ${t.healthyBacklog}-review excess, unbounded)` : "healthy — no pressure", m = t.topReviewScore === null ? "—" : t.topReviewScore.toFixed(2), g = t.nextDueIn ? ` <span style="opacity:.6">\xB7 next due ${esc(t.nextDueIn)}</span>` : "";
|
|
26652
|
+
return `<div style="margin-left:6px"><span style="opacity:.7">${esc(t.courseId.slice(0, 8))}</span> due ${t.dueNow}/${t.scheduledTotal} <span style="opacity:.6">(healthy ${t.healthyBacklog})</span>${g}<div style="margin-left:6px">pressure <span style="color:${u}">\xD7${t.backlogMultiplier.toFixed(2)}</span> <span style="opacity:.6">${d} \xB7 top review ${m}</span></div></div>`;
|
|
26652
26653
|
}).join("")}</div>` : "";
|
|
26653
26654
|
}
|
|
26654
26655
|
function fmtScore(t) {
|
|
@@ -26692,8 +26693,8 @@ function snapshotToText(t) {
|
|
|
26692
26693
|
if (u && (u.boostTags && Object.keys(u.boostTags).length && d.push(` boost: ${Object.entries(u.boostTags).map(([t, c]) => `${t}\xD7${c}`).join(", ")}`), u.boostCards && Object.keys(u.boostCards).length && d.push(` boostCards: ${Object.entries(u.boostCards).map(([t, c]) => `${t}\xD7${c}`).join(", ")}`), u.requireCards?.length && d.push(` require: ${u.requireCards.join(", ")}`), u.requireTags?.length && d.push(` requireTags: ${u.requireTags.join(", ")}`), u.excludeTags?.length && d.push(` exclude: ${u.excludeTags.join(", ")}`), u.excludeCards?.length && d.push(` excludeCards: ${u.excludeCards.join(", ")}`)), c.push(d.length ? d.join("\n") : " none"), t.reviewBacklog.length) {
|
|
26693
26694
|
c.push(""), c.push("review backpressure:");
|
|
26694
26695
|
for (let u of t.reviewBacklog) {
|
|
26695
|
-
let t = u.backlogMultiplier
|
|
26696
|
-
c.push(` ${u.courseId.slice(0, 8)}: due ${u.dueNow}/${u.scheduledTotal} (healthy ${u.healthyBacklog})${m}; pressure \xD7${u.backlogMultiplier.toFixed(2)}
|
|
26696
|
+
let t = u.backlogMultiplier > 1 ? "climbing" : "healthy", d = u.topReviewScore === null ? "—" : u.topReviewScore.toFixed(2), m = u.nextDueIn ? `, next due ${u.nextDueIn}` : "";
|
|
26697
|
+
c.push(` ${u.courseId.slice(0, 8)}: due ${u.dueNow}/${u.scheduledTotal} (healthy ${u.healthyBacklog})${m}; pressure \xD7${u.backlogMultiplier.toFixed(2)} ${t}; top review ${d}`);
|
|
26697
26698
|
}
|
|
26698
26699
|
}
|
|
26699
26700
|
let queueText = (t, u) => {
|
|
@@ -26714,8 +26715,10 @@ function formatTime(t) {
|
|
|
26714
26715
|
function esc(t) {
|
|
26715
26716
|
return t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
26716
26717
|
}
|
|
26717
|
-
function
|
|
26718
|
+
function clearStaleSessionDebugState() {
|
|
26718
26719
|
clearRunHistory(), clearSrsBacklogDebug();
|
|
26720
|
+
}
|
|
26721
|
+
function startSessionTracking(t, c) {
|
|
26719
26722
|
let u = `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
26720
26723
|
activeSession = {
|
|
26721
26724
|
sessionId: u,
|
|
@@ -26821,7 +26824,7 @@ function mountSessionDebugger() {
|
|
|
26821
26824
|
let t = window;
|
|
26822
26825
|
t.skuilder = t.skuilder || {}, t.skuilder.session = sessionDebugAPI;
|
|
26823
26826
|
}
|
|
26824
|
-
var import___vite_browser_external, import___vite_browser_external$1, import___vite_browser_external$2, import_browser_ponyfill, import_browser_ponyfill$1, import_browser, _SessionController2, __defProp, __getOwnPropNames, __glob, __esm, __export, init_adminDB, init_classroomDB, init_SyncStrategy, isDevelopment, logger, init_logger, GuestUsername, log, DocType, DocTypePrefixes, init_types_legacy, init_util, pouchdb_setup_default, init_pouchdb_setup, init_dataDirectory, REVIEW_TIME_FORMAT, log2, init_userDBHelpers, Loggable, init_Loggable, UpdateQueue, init_updateQueue, UsrCrsData, init_user_course_relDB, CLIENT_CACHE, init_clientCache, AlreadyTaggedErr, init_courseAPI, courseLookupDBTitle, CourseLookup, init_courseLookupDB, diversityRerank_exports, DIVERSITY_STRENGTH, DIVERSITY_FLOOR, STRATEGY, STRATEGY_ID, STRATEGY_NAME, init_diversityRerank, PipelineDebugger_exports, _activePipeline, MAX_RUNS, runHistory, DISCARDED_KEEP_TOP, _uiContainer, _selectedRunIndex, _cardSearchQuery, pipelineDebugAPI, init_PipelineDebugger, SrsDebugger_exports, snapshots, init_SrsDebugger, CompositeGenerator_exports, AggregationMode, DEFAULT_AGGREGATION_MODE, FREQUENCY_BOOST_FACTOR, CompositeGenerator, init_CompositeGenerator, elo_exports, ELO_RELEVANCE_SIGMA, ELONavigator, init_elo, generators_exports, init_generators, prescribed_exports, DEFAULT_FRESHNESS_WINDOW, DEFAULT_MAX_DIRECT_PER_RUN, DEFAULT_MAX_SUPPORT_PER_RUN, DEFAULT_HIERARCHY_DEPTH, DEFAULT_MIN_COUNT, DEFAULT_PRACTICE_MIN_COUNT, DEFAULT_MAX_PRACTICE_PER_RUN, BASE_TARGET_SCORE, BASE_SUPPORT_SCORE, DISCOVERED_SUPPORT_SCORE, BASE_PRACTICE_SCORE, PRACTICE_BASE_MULT, MAX_PRACTICE_MULTIPLIER, PRACTICE_STALENESS_BUMP_PER_DAY, MAX_TARGET_MULTIPLIER, MAX_SUPPORT_MULTIPLIER, PRESCRIBED_DEBUG_VERSION, PrescribedCardsGenerator, init_prescribed, srs_exports, DEFAULT_HEALTHY_BACKLOG,
|
|
26827
|
+
var import___vite_browser_external, import___vite_browser_external$1, import___vite_browser_external$2, import_browser_ponyfill, import_browser_ponyfill$1, import_browser, _SessionController2, __defProp, __getOwnPropNames, __glob, __esm, __export, init_adminDB, init_classroomDB, init_SyncStrategy, isDevelopment, logger, init_logger, GuestUsername, log, DocType, DocTypePrefixes, init_types_legacy, init_util, pouchdb_setup_default, init_pouchdb_setup, init_dataDirectory, REVIEW_TIME_FORMAT, log2, init_userDBHelpers, Loggable, init_Loggable, UpdateQueue, init_updateQueue, UsrCrsData, init_user_course_relDB, CLIENT_CACHE, init_clientCache, AlreadyTaggedErr, init_courseAPI, courseLookupDBTitle, CourseLookup, init_courseLookupDB, diversityRerank_exports, DIVERSITY_STRENGTH, DIVERSITY_FLOOR, STRATEGY, STRATEGY_ID, STRATEGY_NAME, init_diversityRerank, PipelineDebugger_exports, _activePipeline, MAX_RUNS, runHistory, DISCARDED_KEEP_TOP, _uiContainer, _selectedRunIndex, _cardSearchQuery, pipelineDebugAPI, init_PipelineDebugger, SrsDebugger_exports, snapshots, init_SrsDebugger, CompositeGenerator_exports, AggregationMode, DEFAULT_AGGREGATION_MODE, FREQUENCY_BOOST_FACTOR, CompositeGenerator, init_CompositeGenerator, elo_exports, ELO_RELEVANCE_SIGMA, ELONavigator, init_elo, generators_exports, init_generators, prescribed_exports, DEFAULT_FRESHNESS_WINDOW, DEFAULT_MAX_DIRECT_PER_RUN, DEFAULT_MAX_SUPPORT_PER_RUN, DEFAULT_HIERARCHY_DEPTH, DEFAULT_MIN_COUNT, DEFAULT_PRACTICE_MIN_COUNT, DEFAULT_MAX_PRACTICE_PER_RUN, BASE_TARGET_SCORE, BASE_SUPPORT_SCORE, DISCOVERED_SUPPORT_SCORE, BASE_PRACTICE_SCORE, PRACTICE_BASE_MULT, MAX_PRACTICE_MULTIPLIER, PRACTICE_STALENESS_BUMP_PER_DAY, MAX_TARGET_MULTIPLIER, MAX_SUPPORT_MULTIPLIER, PRESCRIBED_DEBUG_VERSION, PrescribedCardsGenerator, init_prescribed, srs_exports, DEFAULT_HEALTHY_BACKLOG, BACKLOG_GROWTH_RATE, SRSNavigator, init_srs, types_exports, init_types, globImport_generators, init_, DEFAULT_LEARNABLE_WEIGHT, init_contentNavigationStrategy, WeightedFilter_exports, WeightedFilter, init_WeightedFilter, eloDistance_exports, DEFAULT_HALF_LIFE, DEFAULT_MIN_MULTIPLIER, DEFAULT_MAX_MULTIPLIER, init_eloDistance, hierarchyDefinition_exports, DEFAULT_MIN_COUNT2, HierarchyDefinitionNavigator, init_hierarchyDefinition, userTagPreference_exports, UserTagPreferenceFilter, init_userTagPreference, filters_exports, init_filters, inferredPreferenceStub_exports, INFERRED_PREFERENCE_NAVIGATOR_STUB, init_inferredPreferenceStub, interferenceMitigator_exports, DEFAULT_MIN_COUNT3, DEFAULT_MIN_ELAPSED_DAYS, DEFAULT_INTERFERENCE_DECAY, InterferenceMitigatorNavigator, init_interferenceMitigator, relativePriority_exports, DEFAULT_PRIORITY, DEFAULT_PRIORITY_INFLUENCE, DEFAULT_COMBINE_MODE, RelativePriorityNavigator, init_relativePriority, types_exports2, init_types2, userGoalStub_exports, USER_GOAL_NAVIGATOR_STUB, init_userGoalStub, globImport_filters, init_2, init_gradient, MIN_OBSERVATIONS_FOR_UPDATE, LEARNING_RATE, MAX_WEIGHT_DELTA, MIN_R_SQUARED_FOR_GRADIENT, FLAT_GRADIENT_THRESHOLD, MAX_HISTORY_LENGTH, init_learning, init_signal, init_recording, MIN_SPREAD, MAX_SPREAD, MIN_WEIGHT, MAX_WEIGHT, init_orchestration, Pipeline_exports, VERBOSE_RESULTS, Pipeline, init_Pipeline, defaults_exports, init_defaults, PipelineAssembler_exports, PipelineAssembler, init_PipelineAssembler, globImport, init_3, navigators_exports, navigatorRegistry, Navigators, NavigatorRole, NavigatorRoles, ContentNavigator, init_navigators, CoursesDB, CourseDB, init_courseDB, classroomLookupDBTitle, CLASSROOM_CONFIG, ClassroomDBBase, StudentClassroomDB, TeacherClassroomDB, ClassroomLookupDB, init_classroomDB2, AdminDB, init_adminDB2, CourseSyncService_exports, DEFAULT_REPLICATION, CourseSyncService, init_CourseSyncService, init_auth, CouchDBSyncStrategy_exports, log3, CouchDBSyncStrategy, init_CouchDBSyncStrategy, isBrowser, GUEST_LOCAL_DB, localUserDB, pouchDBincludeCredentialsConfig, REVIEW_TIME_FORMAT2, init_couch, log4, BaseUser, userCoursesDoc, userClassroomsDoc, init_BaseUserDB, init_common, PouchDataLayerProvider_exports, CouchDataLayerProvider, init_PouchDataLayerProvider, pathUtils, nodeFS, StaticDataUnpacker, init_StaticDataUnpacker, StaticCourseDB, init_courseDB2, StaticCoursesDB, init_coursesDB, NoOpSyncStrategy, init_NoOpSyncStrategy, StaticDataLayerProvider_exports, StaticDataLayerProvider, init_StaticDataLayerProvider, NOT_SET, ENV, dataLayerInstance, init_factory, TagFilteredContentSource, init_TagFilteredContentSource, init_contentSource, init_courseDB3, init_dataLayerProvider, init_userDB, init_interfaces, init_user, init_strategyState, init_userOutcome, init_cardProcessor, init_types3, init_bulkImport, userDBDebugAPI, init_UserDBDebugger, init_core, duration, SrsService, EloService, ResponseProcessor, CardHydrationService, ItemQueue, CouchDBToStaticPacker, DEFAULT_MIGRATION_OPTIONS, FileSystemError, nodeFS2, nodeFS3, nodePath, StaticToCouchDBMigrator, QuotaRoundRobinMixer, MAX_RUNS2, runHistory2, mixerDebugAPI, activeController, OVERLAY_ID, POLL_MS, INLINE_THRESHOLD, SPINNER_FRAMES, spinnerFrame, overlayEl, pollHandle, lastSnapshot, copyFlashUntil, minified, expanded, activeSession, sessionHistory, MAX_HISTORY, sessionDebugAPI, SessionController, init_dist = __esmMin((() => {
|
|
26825
26828
|
init_defineProperty(), init_index_browser_es$5(), init_index_browser_es(), init_index_es(), import___vite_browser_external = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), import___vite_browser_external$1 = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), import___vite_browser_external$2 = /* @__PURE__ */ __toESM$2(require___vite_browser_external(), 1), init_moment(), init_dist$1(), init_esm_browser(), import_browser_ponyfill = /* @__PURE__ */ __toESM$2(require_browser_ponyfill(), 1), import_browser_ponyfill$1 = /* @__PURE__ */ __toESM$2(require_browser_ponyfill(), 1), import_browser = /* @__PURE__ */ __toESM$2(require_browser(), 1), __defProp = Object.defineProperty, __getOwnPropNames = Object.getOwnPropertyNames, __glob = (t) => (c) => {
|
|
26826
26829
|
var u = t[c];
|
|
26827
26830
|
if (u) return u();
|
|
@@ -27754,7 +27757,7 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
|
|
|
27754
27757
|
}
|
|
27755
27758
|
};
|
|
27756
27759
|
} }), srs_exports = {}, __export(srs_exports, { default: () => SRSNavigator }), init_srs = __esm({ "src/core/navigators/generators/srs.ts"() {
|
|
27757
|
-
init_navigators(), init_SrsDebugger(), init_logger(), DEFAULT_HEALTHY_BACKLOG = 20,
|
|
27760
|
+
init_navigators(), init_SrsDebugger(), init_logger(), DEFAULT_HEALTHY_BACKLOG = 20, BACKLOG_GROWTH_RATE = 2, SRSNavigator = class extends ContentNavigator {
|
|
27758
27761
|
constructor(t, c, u) {
|
|
27759
27762
|
super(t, c, u), _defineProperty$2(this, "name", void 0), _defineProperty$2(this, "healthyBacklog", void 0), this.name = u?.name || "SRS", this.healthyBacklog = this.parseConfig(u?.serializedData).healthyBacklog ?? DEFAULT_HEALTHY_BACKLOG;
|
|
27760
27763
|
}
|
|
@@ -27811,7 +27814,7 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
|
|
|
27811
27814
|
dueNow: g.length,
|
|
27812
27815
|
healthyBacklog: this.healthyBacklog,
|
|
27813
27816
|
backlogMultiplier: b,
|
|
27814
|
-
|
|
27817
|
+
backlogGrowthRate: BACKLOG_GROWTH_RATE,
|
|
27815
27818
|
topReviewScore: w.length > 0 ? w[0].score : null,
|
|
27816
27819
|
nextDueIn: C,
|
|
27817
27820
|
timestamp: Date.now()
|
|
@@ -27819,8 +27822,8 @@ var import___vite_browser_external, import___vite_browser_external$1, import___v
|
|
|
27819
27822
|
}
|
|
27820
27823
|
computeBacklogMultiplier(t) {
|
|
27821
27824
|
if (t <= this.healthyBacklog) return 1;
|
|
27822
|
-
let c =
|
|
27823
|
-
return
|
|
27825
|
+
let c = (t - this.healthyBacklog) / this.healthyBacklog;
|
|
27826
|
+
return BACKLOG_GROWTH_RATE ** +c;
|
|
27824
27827
|
}
|
|
27825
27828
|
computeUrgencyScore(t, c, u) {
|
|
27826
27829
|
let d = hooks.utc(t.scheduledAt), m = hooks.utc(t.reviewTime), g = Math.max(1, m.diff(d, "hours")), b = c.diff(m, "hours"), S = b / g, C = .3 + .7 * Math.exp(-g / 720), w = (.5 + (Math.min(1, Math.max(0, S)) * .5 + C * .5) * .45) * u, T = [
|
|
@@ -31148,16 +31151,16 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
|
|
|
31148
31151
|
m.card.tags.includes("srs:skip") || this.srsService.scheduleReview(c, u);
|
|
31149
31152
|
let { globalScore: S, taggedPerformance: C } = this.parsePerformance(t.performance);
|
|
31150
31153
|
if (C) {
|
|
31151
|
-
let
|
|
31152
|
-
logger.info(`[
|
|
31154
|
+
let u = Object.keys(C).filter((t) => t !== "_global"), S = u.filter((t) => C[t] === null), w = u.filter((t) => C[t] !== null);
|
|
31155
|
+
logger.info(`[FirstContactElo] correct first-attempt per-tag ELO update for ${b} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}): scored=[${w.join(", ")}] count-only=[${S.join(", ")}]`), this.eloService.updateUserAndCardEloPerTag(C, g, b, d, m);
|
|
31153
31156
|
} else {
|
|
31154
|
-
let
|
|
31155
|
-
if (c.records.length === 1) this.eloService.updateUserAndCardElo(
|
|
31157
|
+
let u = .5 + S / 2;
|
|
31158
|
+
if (c.records.length === 1) this.eloService.updateUserAndCardElo(u, g, b, d, m);
|
|
31156
31159
|
else {
|
|
31157
|
-
let
|
|
31158
|
-
this.eloService.updateUserAndCardElo(
|
|
31160
|
+
let t = Math.ceil(32 / c.records.length);
|
|
31161
|
+
this.eloService.updateUserAndCardElo(u, g, b, d, m, t);
|
|
31159
31162
|
}
|
|
31160
|
-
logger.info(
|
|
31163
|
+
logger.info(`[FirstContactElo] correct first-attempt ELO update (score=${u.toFixed(3)}) for ${b} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`);
|
|
31161
31164
|
}
|
|
31162
31165
|
return {
|
|
31163
31166
|
nextCardAction: "dismiss-success",
|
|
@@ -31179,8 +31182,8 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
|
|
|
31179
31182
|
}
|
|
31180
31183
|
}
|
|
31181
31184
|
processIncorrectResponse(t, c, u, d, m, g, b, S, C) {
|
|
31182
|
-
let { taggedPerformance: w } = this.parsePerformance(t.performance);
|
|
31183
|
-
return
|
|
31185
|
+
let { taggedPerformance: w } = this.parsePerformance(t.performance), T = !1;
|
|
31186
|
+
return t.priorAttemps === 0 ? (w ? (this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d), logger.info(`[FirstContactElo] incorrect first-attempt per-tag ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}, tags=${Object.keys(w).length - 1})`)) : (this.eloService.updateUserAndCardElo(0, m, g, u, d), logger.info(`[FirstContactElo] incorrect first-attempt ELO update (score=0) for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`)), T = !0) : logger.info(`[FirstContactElo] incorrect retry \u2014 no ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`), d.records.length >= b ? C >= S ? (T ? logger.info(`[FirstContactElo] dismiss-failed \u2014 ELO already updated this response, skipping double penalty for ${g}`) : (w ? this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d) : this.eloService.updateUserAndCardElo(0, m, g, u, d), logger.info(`[FirstContactElo] dismiss-failed final ELO penalty for ${g} (historyLen=${c.records.length}, sessionViews=${C})`)), {
|
|
31184
31187
|
nextCardAction: "dismiss-failed",
|
|
31185
31188
|
shouldLoadNextCard: !0,
|
|
31186
31189
|
isCorrect: !1,
|
|
@@ -32140,6 +32143,7 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
|
|
|
32140
32143
|
}
|
|
32141
32144
|
async prepareSession() {
|
|
32142
32145
|
if (this.sources.some((t) => typeof t.getWeightedCards != "function")) throw Error("[SessionController] All content sources must implement getWeightedCards().");
|
|
32146
|
+
clearStaleSessionDebugState();
|
|
32143
32147
|
let t = await this.getWeightedContent();
|
|
32144
32148
|
this._wellIndicatedRemaining = t, t >= 0 && t < _SessionController.MIN_WELL_INDICATED && this.log(`[Init] Only ${t}/${_SessionController.MIN_WELL_INDICATED} well-indicated cards in initial load`), await this.hydrationService.ensureHydratedCards(), startSessionTracking(this.supplyQ.length, this.failedQ.length), this._intervalHandle = setInterval(() => {
|
|
32145
32149
|
this.tick();
|