R6(a): de-stage code, docs, READMEs; split stage6_test
Mechanical, behaviour-preserving removal of Stage N / TODO-N / phase (RN) references from comments, doc-comments, service READMEs, the current-state docs (ARCHITECTURE, FUNCTIONAL+_ru, TESTING, UI_DESIGN), config-file comments, and the .fbs/.proto schema comments. PLAN.md / PRERELEASE.md / CLAUDE.md keep the stage history. - Rename the only stage-named identifiers: registerStage8 -> registerSocialOps, registerStage11 -> registerLinkOps (gateway transcode). - Split stage6_test.go: TestEmailLoginFlow -> email_test.go, TestGuestAutoMatchLeavesNoStats (+ provisionGuest) -> account_test.go. - Regenerated proto bindings (push.pb.go, telegram_grpc.pb.go) from the de-staged .proto comments; FB Go/TS bindings unchanged (flatc strips schema comments). go build/vet/gofmt clean across modules; integration typecheck and pnpm check green.
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
return `${me?.score ?? 0} : ${opp.join(', ')}`;
|
||||
}
|
||||
|
||||
// Hiding a finished game (Stage 17). The delete action sits behind each finished row and is
|
||||
// Hiding a finished game. The delete action sits behind each finished row and is
|
||||
// revealed by swiping the row left (touch) or tapping its kebab (any pointer); the action is
|
||||
// per-account and irreversible. Only one row is revealed at a time.
|
||||
let revealedId = $state<string | null>(null);
|
||||
@@ -277,13 +277,13 @@
|
||||
user-select: none;
|
||||
}
|
||||
/* Game rows are a compact, flat list: no per-card frame, a hairline divider between
|
||||
consecutive rows (Stage 17). */
|
||||
consecutive rows. */
|
||||
.list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
/* Each finished row can slide left to reveal a delete action sitting behind it; the row's
|
||||
own opaque background hides that action until revealed (Stage 17). */
|
||||
own opaque background hides that action until revealed. */
|
||||
.rowwrap {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
// The auto-match move clock (mirrors backend game.DefaultTurnTimeout = 24h).
|
||||
const AUTO_MATCH_HOURS = 24;
|
||||
|
||||
// The offered variants are gated by the languages the sign-in service supports
|
||||
// (Stage 15); the auto-match list and the friend-invite picker both use this.
|
||||
// The offered variants are gated by the languages the sign-in service supports;
|
||||
// the auto-match list and the friend-invite picker both use this.
|
||||
const variants = $derived(availableVariants(app.session?.supportedLanguages));
|
||||
const timeouts = [
|
||||
{ secs: 300, key: 'time.minutes' as MessageKey, n: 5 },
|
||||
@@ -39,7 +39,7 @@
|
||||
}
|
||||
}
|
||||
// startPoll is the matchmaking fallback used only while the live stream is down: with the stream
|
||||
// up the match_found push drives navigation (R4). It polls lobby.poll every 2.5s.
|
||||
// up the match_found push drives navigation. It polls lobby.poll every 2.5s.
|
||||
function startPoll() {
|
||||
if (poll) return;
|
||||
poll = setInterval(async () => {
|
||||
@@ -58,7 +58,7 @@
|
||||
}
|
||||
// cancelSearch leaves the auto-match pool on the backend too, so a cancelled quick-match
|
||||
// is actually dequeued — otherwise the account stays queued (blocking a re-queue) and the
|
||||
// reaper later substitutes a robot for a game the player abandoned (Stage 17 fix).
|
||||
// reaper later substitutes a robot for a game the player abandoned.
|
||||
function cancelSearch() {
|
||||
stop();
|
||||
searching = false;
|
||||
@@ -104,7 +104,7 @@
|
||||
let selected = $state<string[]>([]);
|
||||
let friendFilter = $state('');
|
||||
// No default game type yet — the player must pick one (a smarter default from play
|
||||
// history / language is TODO-6). '' renders the disabled placeholder option.
|
||||
// history / language would be a future refinement). '' renders the disabled placeholder option.
|
||||
let inviteVariant = $state<Variant | ''>('');
|
||||
let timeoutSecs = $state(86400);
|
||||
let hints = $state(1);
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
}
|
||||
|
||||
// populate loads the editable form from the current profile. The profile screen is
|
||||
// edited inline (no edit/cancel toggle, Stage 17), so this runs on mount and after a
|
||||
// edited inline (no edit/cancel toggle), so this runs on mount and after a
|
||||
// link/merge swaps the active account.
|
||||
function populate() {
|
||||
const p = app.profile;
|
||||
@@ -215,7 +215,7 @@
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
<!-- Linking & merge (Stage 11). Shown to everyone, including guests, who
|
||||
<!-- Linking & merge. Shown to everyone, including guests, who
|
||||
upgrade by binding their first identity. -->
|
||||
<section class="emailbox">
|
||||
<h3>{t('profile.linkAccount')}</h3>
|
||||
@@ -246,7 +246,7 @@
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
<!-- Logout is hidden for now (Stage 17) but kept wired — drop `hidden` to re-enable
|
||||
<!-- Logout is hidden for now but kept wired — drop `hidden` to re-enable
|
||||
once its entry point is decided; logout() also still runs on an invalid session. -->
|
||||
<button class="logout" hidden onclick={() => logout()}>{t('login.title')} / logout</button>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user