Record validated fixes, regression coverage and compatibility limits in Upcoming. Keep the broader TODO Later implementation queue paused.
Thanks to Hama1cco and xet7 !
Fix AdminFieldBleed (GHSA-m8gh-2h78-f57x): redact protected values from publications, API responses, method results, History and analytics; constrain value searches and refresh live permissions.
Guard inserts, full-array modifiers, copying and shared definitions at the request write boundary. Require authorized exports and summarize explicit attacks in Admin Panel Problems. Add positive, negative and Chromium regression coverage.
Thanks to Hama1cco and xet7 !
Read the validated node-saml inResponseTo property and retain single-use response checks. Forward ACS errors to the sign-in form without exchanging missing credentials.
Verify real signed-response login, replay rejection, popup errors and safe UI text rendering. Document deployment-specific identity mapping.
Thanks to xet7.
Retain an immutable operator decision before repairing the exact attempt receipt. Preserve dispatch guards and never send or reset mail. Cover interruption, conflicting decisions and real MongoDB CLI recovery. Other operator recovery remains unfinished.
Thanks to xet7.
Discover comment owners before reading prose, enforce card and assigned-only access, and retain each included source chain for stored dispatch checks. Reuse public comment rendering without exporting target checklists or files; reject oversized captures instead of truncating.
Thanks to kabi178, bbyszio and xet7 !
Include local archive state and lifecycle timestamps under the linked-card local section. Keep card number and color on the source selected by existing display getters.
Thanks to kabi178, bbyszio and xet7 !
Reuse ordinary Details rendering for explicitly local fields, including custom-field visibility and definition fingerprints, public names, notes, locations and authorized relationships. Persist related-source evidence in the existing email binding.
Thanks to kabi178, bbyszio and xet7 !
Read archive, due completion and overtime from the target board. Resolve only public names for unique active members, matching linked-board Members and Assignees getters, and recheck target access.
Thanks to kabi178, bbyszio and xet7 !
Classify all 71 top-level schema fields with an AST-backed inventory guard. Record remaining linked-board display and per-card discussion gaps explicitly.
Thanks to kabi178, bbyszio and xet7 !
Remove the duplicate spent-time setter that shadowed linked-board support. Await time credit before clearing sessions, and isolate automatic Pomodoro transitions from Tracker with one pending transition per view.
Thanks to xet7 !
Separate wrapper placement, persisted timers and visible Scrum metadata from authorized source content. Recheck local access, link identity and Scrum visibility before returning the snapshot.
Thanks to kabi178, bbyszio and xet7 !
Exercise authenticated REST moves with filesystem and GridFS attachments, all content choices, and negative authorization and destination matching cases.
Thanks to kabi178, bbyszio and xet7 !
Group readable targets while retaining distinct relationship types and source-access checks. Cover malformed legacy arrays and real SMTP rendering.
Thanks to kabi178, bbyszio and xet7 !
Describe captured filenames, actual sizes, MIME types, cover status, upload dates and public uploader names. Recheck card access and cover state after metadata reads and reject deleted cards or foreign attachment rows.
Thanks to kabi178, bbyszio and xet7 !
Share related-source resolution between Details and checklist discussion. Retain reference evidence for stored messages even when Details is disabled, and omit inaccessible targets.
Thanks to kabi178, bbyszio and xet7 !
Resolve related link titles through current readable sources and retain their chains in immutable command evidence. Recheck related access, admin rights and custom-field definitions before stored dispatch. Refuse legacy Details snapshots without related evidence.
Thanks to kabi178, bbyszio and xet7 !
Decode valid reaction codepoints and count distinct reactors without exporting account identifiers. Keep reactions scoped to included live comments and record remaining related-content authorization work.
Thanks to kabi178, bbyszio and xet7 !
Include public creators and comment authors, stickers, lifecycle metadata, checklist deadlines and reset schedules. Record remaining full-content gaps against the models and card export layout.
Thanks to kabi178, bbyszio and xet7 !
Resolve sprint and release names within the source board and recheck references after preparation. Persist Scrum disclosure flags with source evidence for stored sends.
Thanks to kabi178, bbyszio and xet7 !
Use live target results with both boards' visibility settings. Persist target disclosure policy in version-three source bindings and recheck it before dispatch.
Thanks to kabi178, bbyszio and xet7 !
Keep private voter names and unfinished poker choices out of Details. Persist voting visibility with source bindings and reject changed disclosure settings before stored dispatch.
Thanks to kabi178, bbyszio and xet7 !
Export persisted Flowtime and Pomodoro fields and public session owner names alongside recurrence settings. Cover zero values, malformed fields, access loss and SMTP delivery through both attachment backends.
Thanks to kabi178, bbyszio and xet7 !
Capture versioned source evidence with immutable mail and verify its topology and current access before dispatch. Keep legacy commands readable without authorizing an unbound retry.
Thanks to kabi178, bbyszio and xet7 !
Use live source card data across email text, details, discussion and files. Resolve linked-board display fields without including unrelated source-board cards. Recheck each link and its permissions after preparation, and reject cycles, missing sources or retargeted links.
Refuse linked stored Sync commands until durable source-chain bindings exist, including during dispatch of previously captured commands. Fifty-seven Node suites pass without skips, with real MongoDB and native MailComposer; local SMTP browser scenarios pass.
Thanks to kabi178, bbyszio and xet7 !
Render dates, placement, labels, people, custom-field display values, notes and readable relationships behind an opt-in Details checkbox. Recheck source and related access, admin-only field policy and field definitions; do not serialize account secrets or stale linked-source snapshots.
Thirty-six Node suites and two local SMTP browser scenarios pass. Linked-source details and specialized fields remain open under #2713.
Thanks to kabi178, bbyszio and xet7 !
Offer an independent opt-in choice, render checklist completion and chronological comments, exclude deleted or foreign content and private webhook state, and recheck access after child reads. Bound output without silent truncation.
Verify 35 Node suites and two local SMTP browser scenarios, including disabling the option. Other card metadata remains open under #2713.
Thanks to kabi178, bbyszio and xet7 !
Add an opt-in native checkbox, read live triggering-card files through the storage strategy, recheck source access and attachment metadata after reads, and preserve byte snapshots through email localization and transport.
Verify filesystem and GridFS MIME delivery with local SMTP capture, soft deletion, missing-file failures, keyboard selection, permission changes and durable attachment integrity. Full card-content rendering remains open in #2713.
Thanks to kabi178, bbyszio and xet7 !
Add bounded backend-neutral stream snapshots with canonical base64 payloads, sanitized names and cleanup on read errors. Accept validated byte snapshots in stored Sync mail commands while retaining text-size and integrity checks.
Rule UI, authorized storage reads and transport integration remain pending for #2713. Thirteen focused Node suites pass.
Thanks to kabi178, bbyszio and xet7 !
Reuse ordinary card copying, preserve the source, validate destination placement and current write access, and stop recursive copy chains while allowing independent events.
Verify automatic and manual copies, checklists and comments, revoked access, forged destinations and same-board recursion in Chromium. All 29 rule Node suites pass.
Thanks to javen9881, phaseshift3r, gugmt15 and xet7 !
Fixes#4160,
Fixes#3235,
Move the completed #935 item out of TODO Later and record source authorization, reactive dates, browser coverage and remaining broader work.
Thanks to neooleg and xet7 !
Use one-hop source dates for ordering and badges, observe source data and permissions, and recheck them after each scan. Handle partial linked-board member metadata without breaking row rendering.
Cover source edits, access revocation/restoration, assigned-only readers, source moves, all four date fields and ordinary lazy pagination.
Thanks to ghost, neooleg, Creanimo, GusevVictor, avatar1024 and xet7 !
Fixes#935,
Search and sort projected board metadata before fetching a 25-card page. React to board/card/list/swimlane edits, retract revoked pages, and nest table cells beneath their rows. Verify pagination beyond 5000 cards and document remaining linked-source date ordering parity.
Thanks to neooleg and xet7 !
Support keyboard selection, indeterminate excluded labels and explicit due-date reset. Preserve saved combinations and document the separate Table-view lazy-loading gap found during regression checks.
Thanks to neooleg and xet7 !
Pair label matches with their owning board, keep missing-label queries empty and preserve numeric card alternatives. Compare overdue deadlines with the current instant instead of UTC midnight. Verify combined searches across authorized and private boards in Chromium.
Thanks to GusevVictor, neooleg and xet7 !
Connect bundled filter templates, selectors, scoped resets and validated preset restoration through one registry. Use the recency controls as a built-in provider and verify extension lifecycle in Chromium.
Thanks to neooleg and xet7 !
Capture and restore all current filter controls with validated versioned state, refresh relative dates when applied, and reject invalid expressions before changing live filters. Persist same-name replacements atomically, restrict writes and subscriptions to their owner and board access, and clean preferences on board or account deletion.
Thanks to Creanimo, avatar1024, neooleg and xet7 !
Use local calendar boundaries and the user's week start, refresh active shortcuts with the shared clock, and release the subscription on switching or clearing. Cover month-end and year rollover plus actual sidebar boundaries.
Thanks to neooleg, Creanimo and xet7 !
Match any recorded list, swimlane or incoming board move within inclusive local-day bounds, regardless of later moves. Reuse the authorized reactive ID publication for text and history, preserve lazy-loading coverage and validate history joins and live UI behavior.
Thanks to neooleg and xet7 !
Match literal text across the authorized board, including cards outside lazy windows. Publish only matching IDs, refresh on content and access changes, and release observers when filters change. Verify the batched join, cancellation and permission races, and actual Chromium behavior.
Thanks to neooleg and xet7 !
Provide independent recent-day, week, thirty-day and older presets with a shared reactive clock, strict date values and composable card selectors. Verify timer cleanup and the real sidebar in Chromium.
Thanks to neooleg and xet7 !
Document verified sidebar date-range controls and retain the unfinished historical movement, combined text, relative preset and saved-filter requirements in TODO Later.
Thanks to neooleg and xet7 !
Choose inclusive local calendar bounds for seven card dates without an advanced expression. Preserve valid filters after invalid input and combine ranges with existing filters. Cover selectors and the actual sidebar in Chromium.
Thanks to neooleg and xet7 !
Add explicit built-in date names, missing-date comparisons and typed date guards while preserving quoted custom-field names and the shared date parser. Cover sidebar selection and actual rule execution.
Thanks to TiibCD and xet7 !
Fixes#1915,
Stream recorded movement histories during the versioned startup repair. Fill only missing dates with placement-bound conditional writes, preserve unknown or contradictory histories, and keep unresolved concurrent changes retryable.
Thanks to grasshide and xet7 !
Fixes#1499,
Keep column age stable across unrelated edits and record moves in the same card write. Add a rolling, board-scoped hide filter while retaining legacy cards with unknown entry dates. Historical activity backfill remains pending.
Thanks to grasshide and xet7 !
Refs #1499.
Resolve public card, board, list and swimlane titles reactively in detail and minicard views. Preserve existing regex formatting and constrain linked source placement metadata to its authorized board.
Thanks to solunix and xet7 !
Fixes#3815,
Remove rendered payloads immediately after matching intent completion and in bounded background sweeps. Require valid checksums and dispatch identity, retain pending or damaged plans, and use atomic in-place replacement with readback for uncertain acknowledgements.
Validated with 20 Node/MongoDB cases, three additional Node suites, four Meteor cases and thirteen Chromium delivery and cleanup scenarios. Operator handling and unresolved-payload retention remain open.
Thanks to xet7.
Scan bounded pending-intent batches after startup, advance past failed and busy rows, and coordinate immediate delivery and recovery through renewable per-intent reservations. Resume saved plans or prepare the first plan from an unchanged persisted activity; retain unresolved orphans without recreating activities.
Validated with 14 Node/MongoDB cases, three additional Node suites, four full-app Meteor cases and twelve Chromium scenarios including scheduled local SMTP recovery. Operator controls and payload retention remain open.
Thanks to xet7.
Save a checksummed plan before delivery, bind the original activity and dispatch actor, and reuse tray receipts and email job identities on retry. Recheck current recipient scope and channel preferences without rebuilding saved content.
Validated with ten MongoDB cases, three Node suites, three Meteor cases and ten Chromium notification scenarios. Background replay, ownership and plan retention remain open.
Thanks to xet7.
Await private intent persistence before the activity insert, preserve scoped Sync deferral, and retain pending evidence until all recipient subscribers acknowledge local writes. Compact successful intents while preserving dispatch identity; keep webhook delivery independent.
Validated with six MongoDB cases, three Node suites, three full-app Meteor cases and ten Chromium email delivery and private-storage scenarios. Automatic pending-intent recovery remains unfinished.
Thanks to xet7.
Confirm immutable intent persistence before inserting an activity, reconcile uncertain acknowledgements, and require exact activity snapshots for recovery. Bind insertion authority to the creating call so orphan retries cannot resurrect deleted activities.
Four real MongoDB fault and concurrency tests pass. This internal primitive is not activated in activity hooks; scheduling, persisted delivery plans and operator lifecycle remain open.
Thanks to xet7.
Retain detailed metadata for 30 days by default, then replace terminal jobs and commands atomically with minimal permanent identities. Preserve unfinished work, holds, generation fencing and actor-bound command replays. Sweep bounded batches independently and reconcile uncertain writes.
Validated with six Node suites, real MongoDB faults and replay tests, the Meteor startup scheduler, and Chromium Recovery replay and authorization checks.
Thanks to xet7.
Map selected aggregate seconds to the board's imported numeric time fields in hours. Preserve zero, missing and explicit null; validate mapping identities and retain unrelated fields through conditional array writes.
Twenty-five focused Node suites and twenty-two Chromium scenarios pass with local MongoDB and Jira fixtures. Live Jira, FerretDB and other browsers remain unverified.
Thanks to xet7 !
Apply configurable finite DNS, connection, greeting and idle limits to standard SMTP URLs, TLS overrides and admin providers. Keep Meteor's native standard transport and reapply limits after Sandstorm mail updates.
Eleven focused Node suites and fifteen Chromium scenarios pass. Real SMTP tests prove greeting and idle timeouts close connections, preserve queued payloads and allow later delivery. Absolute delivery deadlines remain pending.
Thanks to xet7 !
Select due recipients rather than a message-limited prefix. Share overlapping scans and process four recipients concurrently while preserving recipient leases. Verify pool limits, query recovery, large-backlog fairness and actual slow SMTP delivery.
Nine focused Node suites and fourteen Chromium scenarios pass; the strengthened scheduling-order browser case also passes. Startup-only harness was not rerun.
Thanks to xet7 !
Persist attempt reservations before sending, classify permanent SMTP failures, add bounded jitter and retain failed messages for administrator retry or cancellation.
Verify fourteen focused Node suites and fourteen Chromium scenarios with local MongoDB and SMTP. The separate stopped-app startup harness was not rerun.
Thanks to xet7 !
Index SAML, LDAP, OAuth login providers and Passwordless login separately from general Login settings. Update the implementation inventory to match the current routes.
Thanks to xet7 !
Summarize recipients without mail payloads, paginate with bounded memory, and coordinate pause/resume/cancel with sender reservations. Persist holds, cancellation cutoffs and idempotent request receipts so replay cannot undo newer actions or cancel later messages.
Verify current administrator access, interrupted commands, lost write acknowledgements, stable cancellation and private collection boundaries with MongoDB and Chromium tests. Keep translations limited to English source labels.
Thanks to xet7 !
Replace process-only digest timers with a private event/recipient outbox, renewable recipient reservations, persisted retry backoff and verified SMTP acceptance. Migrate legacy buffers without discarding unqueued text, retain small replay receipts, and recheck membership before delivery.
Verify MongoDB concurrency and interrupted writes, actual application startup recovery, and ten Chromium scenarios using local SMTP. Document at-least-once delivery and remaining recovery controls.
Thanks to xet7 !
Await buffer persistence, serialize per-user digest timers, and remove only delivered lines. Retain failed sends and newer reply targets. Cover SMTP rejection recovery through Chromium and local SMTP capture, plus concurrent sends and database read failures.
Thanks to xet7 !
Require caller-persisted intent IDs and private immutable completion records before cleanup. Resume known completions without rebuilding or reapplying cards, reject conflicting scopes and pending intents, and preserve newer operations.
Thanks to xet7.
Read back plan and marker deletion, retain incomplete cleanup, resolve lost delete acknowledgements only from confirmed absence, and protect successor operations and uncertain outcomes.
Thanks to xet7.
Compare before/after field unions without replacing unrelated metadata. Share literal snapshot predicates with production Sync, isolate result verification from driver mutation, and reject array shapes that cannot survive BSON storage.
Thanks to xet7.
Validate typed custom-field arrays, canonical estimate mapping identities and source baselines. Permit only the mapped field to change, retain local fields exactly, and verify persisted update/clear/create recovery and conflict retention against MongoDB.
Thanks to xet7.
Parse complete finite decimal tokens instead of integer prefixes. Keep text and dropdown matching, reject malformed numeric ranges, and verify database and browser behavior.
Thanks to xet7.
Use recursive grouping and Mongo-compatible whole-selector negation. Preserve left-to-right logical ordering, reject unfinished expressions before queries, and cover MongoDB and Chromium behavior.
Thanks to xet7.
Use elemMatch for field identity and value together in sidebar and rule queries. Reject unknown field names before querying, and verify cross-field false positives with MongoDB and Chromium regressions.
Thanks to xet7.
Compare saved custom-field values by identity for array, dotted and assignment updates. Suppress no-op and failed writes, preserve zero and false, and evaluate advanced-filter rules using boardIds-scoped definitions.
Thanks to xet7.
Select an existing numeric Jira estimate field in the Sync popup, retain field/unit identity, request the selected Cloud field, and merge numeric estimates with source baselines. Preserve zero, explicit null clearing, unrelated custom fields and their order; reject invalid or changed mappings and stale card writes. Cover source selection, conflicts, remapping, invalid values and full popup flow in Node and Chromium.
Thanks to xet7 !
Validate only present target entries while rejecting unknown keys, invalid values and broken placeholders. Keep source validation strict, log omitted key counts, and apply the same rules in offline dry runs. Preserve existing locale bytes and human-owned upload exclusions.
Thanks to xet7 !
Reject oversized rollover, compound History and recovery payloads before the first lifecycle write using BSON byte counts. Cover multibyte data, complete 10000-card plans and large-metadata rejection/retry in Chromium.
Thanks to xet7 !
Fetch projected inputs with an overflow sentinel before start or close, reject oversized card/list sets without partial snapshots, and index done-list membership once. Cover exact limits and unchanged lifecycle/History on rejection with unit and Chromium tests.
Thanks to xet7 !
Check source integrity, conditional write results and persisted undo state. Preserve undo timestamps across retries and delete only the matching operation checkpoint. Test failed writes, damaged final state, replacement checkpoints and recovery in Node and Chromium.
Thanks to xet7 !
Use deterministic event IDs and verify immutable contents and integrity before clearing recovery evidence. Accept exact legacy rows and lost insert acknowledgements; retain checkpoints on failed or conflicting records. Cover replay, concurrency, failed writes and damaged recovery rows in Node and Chromium.
Thanks to xet7 !
Reuse the actual merge and write plan, scope full-list previews to unrestricted writers, bound reports and keep omitted values private. Exclude status-only diffs from update counts. Preserve empty and whitespace source text through schema cleaning so repeated runs do not keep changing comparison baselines. Cover preview parity, saved settings, access changes, no-write errors, storage behavior and browser flows.
Thanks to xet7 !
Fence cleanup with opaque revisions and delete only bounded immutable ID snapshots. Settings saves repair invalid or exhausted counters atomically, while active tokens and newer staging remain intact. Cover reset races, overlapping delayed sweeps, bounded backlogs, lost acknowledgements and popup saves.
Thanks to xet7 !
Generate a fresh credential incarnation for each list insertion, including imports and copies. Match it when selecting credentials and activating settings. Sweep orphan versions by exact identity without reading secrets or deleting a recreated list's new token. Cover recreation races, delayed saves, retryable cleanup and browser flows.
Thanks to xet7 !
Persist conditional replacement decisions before card insertion. Revalidate source previews, restrict replacement to full-list writers and preserve the previous card. Cover stale decisions, database races and lost acknowledgements, moved and detached UI flows, and private collection writes.
Thanks to xet7 !
Offer a scoped archive-conflict preview and a parent-only mapping removal. Refetch source absence and revalidate the parent and archive blocker before conditional resolution. Preserve all subtask content and hide subtask identifiers from previews; assigned-only callers retain their write scope.
Ten Sync Node suites and thirteen Chromium scenarios pass, including both permission scopes, returning source items, unchanged subtasks and existing Sync behavior. Local release audit passes with advisory warnings. Add English source labels only. Creation collisions after moved or detached cards remain pending.
Thanks to xet7 !
Show extra mappings alongside the consistently retained card. Fingerprint the visible group, reject changed previews, and remove only an extra card’s Sync identity and baseline. Protect the same first mapping independently of database cursor order; preserve card content and assignment checks.
Ten Sync Node suites and eleven Chromium scenarios pass, including stale groups, retained-mapping protection, content preservation and successful reconciliation after repair. The local release audit passes with advisory warnings. Add English source labels only.
Thanks to xet7 !
Assigned-only writers review and resolve their own existing cards without triggering whole-list reconciliation or changing shared Sync status. Keep assignment in the conditional resolution write and recheck access after fetching. New shared conflict summaries omit card identifiers and values.
Ten Sync Node suites and ten Chromium scenarios pass, including hidden-card preservation, assignment revocation, scoped writes, source switching and credential recovery. The local release audit passes with advisory warnings. English source label only; no translation fill.
Thanks to xet7 !
Show local and source values for title, description and spent-time conflicts. Refetch and fingerprint the comparison before accepting a field choice, preserve unrelated fields and conditionally reject changed cards. Keeping local values advances their source baseline; no upstream writes occur.
Require unrestricted board write access and recheck it after fetching. Ten Sync Node suites, field-specific regression checks, catalog ordering and nine Chromium scenarios pass. Duplicate identity, archive/move conflicts, assigned-only resolution and transactional reconciliation remain pending. Add English source labels only.
Thanks to xet7 !
An hourly streaming sweep advances a server-owned generation before deleting unselected older versions. Settings activation checks its captured generation, so a delayed save cannot select a retired credential. Preserve active and newly staged versions, isolate per-list failures and keep secrets out of cleanup logs.
Eleven Node suites pass, including real MongoDB concurrent saves and sweeps, late inserts, uncertain writes and restart retries. Eight Chromium Sync scenarios pass across the initial run and focused corrected-test rerun. Upgrade all writers together; missing-list and malformed-generation records remain for review.
Thanks to xet7 !
Normal imports enter the recoverable cleaning phase before deleting private plan rows. Propagate cleanup failures and keep the destination guarded until deletion is acknowledged, so offline recovery can finish partial cleanup.
Three Node suites and two Chromium native-import/board-copy scenarios pass. MongoDB tests inject interruptions at every cleanup boundary and resume through the maintenance implementation.
Thanks to xet7 !
Validate complete plans before undoing stored writes in reverse order. Restore only original Scrum metadata and conditionally remove exact imported planning records. Persist reverse progress and cleanup, retain recovery claims on failure, and safely discard incomplete preparation without destination writes.
MongoDB integration tests cover every planned collection, write gaps, changed targets, cleanup interruption, corrupted cursors and the CLI. FerretDB remains unverified.
Thanks to xet7 !
Preserve localized help URLs during upload validation and pull merging. Repair translated string-template tokens in 20 locales and retain exact-value corrections. Cover all catalogs, genuine damaged tokens and the actual pull merge.
Thanks to xet7 !
Validate every target before writing, preserve stable IDs and conditional updates, and retain non-expiring recovery claims on failure. Resume complete staging and interrupted cleanup; reject partial plans and changed targets. Online recovery and other board-import stages remain unfinished.
Stage private per-document recovery steps before destination writes and retain board-level pending state through marker cleanup. Preserve stable IDs and exact before/after values for interrupted writes. Public coordinated replay and rollback remain unfinished.
Reject Scrum mutations and History changes until imported data is complete. Remove editing capabilities, show the pending warning and return a clear 409 for report downloads. Verify exclusion and normal access after the importer clears its marker.
Thanks to xet7 !
Introduce version 2 while accepting version 1 imports. Remap snapshot references, retain measured epochs and partial-data notices, bound transfer sizes, and prevent collectors from observing unfinished imports.
Thanks to xet7 !
Share the bounded history reader with report downloads. Preserve exact UTC capture times, estimate policies, unknown counts and partial or truncated result notices. Verify real workbooks and extracted PDF text through the application.
Thanks to xet7 !
Render timestamped scope, remaining and completed observations with count and estimate metrics. Preserve gaps and unknown estimates, label partial and truncated results, and ignore stale requests after sprint changes.
Thanks to xet7 !
Keep the first actual observation of each UTC day, preserve unknown estimates, and bound history reads. Verify retry and concurrent capture behavior with MongoDB and reader permissions with Chromium.
Thanks to xet7 !
Stage a private credential version and select it with settings using a conditional revision update. Preserve the previous or new pair across interrupted saves and lost acknowledgements. Prevent stale saves and delayed cleanup from replacing newer credentials, including after a clear.
Thanks to xet7.
Share a private database reservation across scheduled Sync, manual Sync and configuration methods. Renew during fetches, verify ownership before writes, reclaim expired reservations and preserve replacement owners during cleanup. Document the remaining in-flight write fencing and multi-document recovery requirements.
Thanks to xet7.
The maintainer is evaluating Transifex translation features to obtain most translations there. Keep earlier translation checkpoints as reference material only.
Thanks to xet7.
Use a stable database ID for new list/source/issue mappings. Stop on creation conflicts without replacing moved cards or claiming successful reconciliation. Cover concurrent database writers, browser clients, moved-card recovery and unrelated database failures.
Thanks to xet7.
Preserve previous-source cards across project switches, require matching credentials before fetching, and bind identifiable legacy mappings before replacing or clearing settings. Reject unknown legacy sources and stale fetched configurations.
Verify with nine focused Node suites, nine Chromium scenarios and the local release audit. Concurrent jobs and configuration writes remain nontransactional.
Thanks to xet7 !
Limit the exceptions to three exact URLs in package-lock.json. Cover accepted funding metadata and rejected URL variants, application URLs and suspicious keywords.
Thanks to xet7 !
Record current Scrum, Rules/History, translation, issue/UI/security audit and verification status under TODO Later. Refresh translation counts, stop active-work wording and wrap Upcoming entries. Completed implementation remains in its feature/fix-specific commits.
Thanks to xet7 !
Fill 60 English placeholders for navigation, screen-reader hints, workspace summaries and search. Preserve tokens and existing translations. Extend vocabulary and direction checks; accessibility terminology remains pending native-speaker review.
Thanks to xet7 !
Fill 38 English placeholders while preserving existing translations and tokens. Extend checks for variable operations and functions with and without return values. Specialist terminology remains pending native-speaker review.
Thanks to xet7 !
Fill 86 English placeholders for arithmetic, statistics, rounding and trigonometry. Keep mathematical notation and placeholders intact and extend catalog regressions. Specialist Gujarati mathematical terminology has low confidence and needs native review.
Thanks to xet7 !
Fill 75 English placeholders while retaining tokens and existing translations. Extend regression coverage for list actions and ascending/descending order. Specialist terminology remains pending native-speaker review.
Thanks to xet7 !
Fill 66 English placeholders while preserving existing translations and tokens. Expand Gujarati vocabulary and placeholder checks. Specialist mathematical and accessibility terminology remains pending native-speaker review.
Thanks to xet7 !
Fill 80 more English placeholders, including short control-flow aliases and bitmap states. Extend catalog checks and verify Gujarati dragging, field editing, save and context menus in Chromium. Specialist terminology remains pending native-speaker review.
Thanks to xet7 !
Fill 87 English placeholders for navigation, accessibility, colors and basic blocks. Preserve placeholders and existing translations, and update the active translation status. Gujarati terminology remains pending native-speaker review.
Thanks to xet7 !
Add field ID and unit controls to Jira import, validate before writes, and preserve mapping through Jira/native exports and board copies. Keep new fields hidden and reuse existing labels and permissions.
Thanks to xet7 !
Reject contradictory sprint states and snapshot timestamps before native import writes. Preserve valid active and cancelled history and cover import and board-copy round trips.
Thanks to xet7 !
Prevent inherited object properties from becoming list IDs or dependency targets. Reproduce the old import failure and verify literal names, Scrum categories, rendered cards and valid dependency links.
Thanks to xet7 !
Map explicit Jira category keys to existing hidden list metadata, validate before import writes, and honor Scrum selection in both directions. Verify Jira and native round trips and unchanged time tracking.
Thanks to xet7 !
Use stable card IDs to break equal effective-rank ties across fetches and clients. Preserve explicit zero ranks and normal list-position fallback. Cover metadata edits and refreshes in Chromium.
Thanks to xet7 !
Document verified History integration, shared-component behavior, localized editing and responsive layouts. Keep translation status explicitly paused and retain concurrency and backend limits.
Thanks to xet7 !
Clear stale manual-button metadata for automatic triggers and populate it for REST button rules. Verify actual menu visibility and History undo/redo for editor and REST changes.
Thanks to xet7 !
Copy changed shared triggers and actions while preserving unshared IDs and REST patch semantics. History restores component references and cleans unreferenced private copies.
Thanks to xet7 !
Reuse one cleanup path for editor, REST and History deletion. Restore shared components only when their recorded content is unchanged, without writing over another rule.
Thanks to xet7 !
Use the authenticated API user and shared rule snapshot wrapper for creation, edits and deletion. Verify one entry per operation, no-op suppression, permission denial and undo/redo.
Thanks to xet7 !
Reject mixed units, estimate sources, custom fields and completion policies before importing a board instead of combining unlike historical totals.
Thanks to xet7 !
Allow clearing rank metadata, retain zero as an explicit rank and avoid negative board positions blocking unrelated Scrum edits. Verify History and native transfer preserve cleared values.
Thanks to xet7 !
Display the current release and provide a board-local selector using existing card validation and History undo/redo. Keep card options independent from the planning-page release selector.
Thanks to xet7 !
Snapshot the configured workweek and use the start calendar for inclusive planned date counts. Preserve legacy unknowns, validate transferred calendars and include counts in reports and exports.
Thanks to xet7 !
Reuse active board membership validation, administrator-only configuration and History undo/redo. Add source labels with English catalog fallbacks and verify settings do not grant permissions.
Thanks to xet7 !
Carry metadata into newly created destination lists during list and swimlane moves, while retaining existing destination categories and revisions.
Thanks to xet7 !
Preserve descriptive metadata, reset copied revisions and remove foreign planning references and rank from cross-board card and subtask copies. Full-board copies keep the existing transfer remapper.
Thanks to xet7 !
Reuse numeric Jira time conversion and preserve local time edits with source baselines and conditional writes. Cover settings, zero values, excluded fields and invalid time.
Thanks to xet7 !
Add Title and Description switches with existing behavior as the default. Validate selections through the existing write-authorized method and exclude unselected fields from merge and baseline updates. Verify persistence, unsupported values and new-card defaults.
Thanks to xet7 !
Archive only planned source-matched cards with conditional text and location checks. Reject runs with active subtasks outside the archive plan rather than cascading through locally created work.
Thanks to xet7 !
Strip source IDs and text baselines from card/subtask copies. Reject existing duplicate local mappings before reconciliation rather than selecting an arbitrary card. Verify source preservation, actual copy bodies and board duplication.
Thanks to xet7 !
Track accepted source text, merge upstream-only edits, retain local-only edits and stop conflicting runs before card writes. Guard updates against concurrent text or location changes and display structured failures correctly in Sync now.
Thanks to xet7 !
Validate normalized tasks before reading or mutating cards. Missing IDs, duplicate IDs and malformed text cannot silently disappear from the source set or overwrite another task. Retain ordinary empty-source and unchanged-card behavior.
Thanks to xet7 !
Route standard Atlassian Cloud tenants to v3 search with explicit parser fields and complete token pagination. Reject missing or repeating tokens while retaining offset pagination for self-hosted Jira.
Thanks to xet7 !
Follow Jira offsets and provider next-page headers, validate advertised totals, and abort incomplete, looping or failed fetches instead of returning partial issue sets. Bound page/item counts and keep pagination on the configured origin without redirects.
Thanks to xet7 !
Reuse import source validation and handle parser failures through the existing error path. Invalid responses cannot masquerade as an empty source and archive cards. Verify actual sync function behavior and error display.
Thanks to xet7 !
Remove nested and flat fallback estimates when Custom Fields is excluded and spent time when Dates is excluded. Verify both actual import-page selections and preserve the existing full-transfer round-trip.
Thanks to xet7 !
Exercise native export/import and whole-board duplication with new field IDs, renamed estimate markers, remapped Scrum settings and subsequent Jira exports. Document the verified preservation boundaries.
Thanks to xet7 !
Keep valid numeric integration settings when the editor rebuilds visible settings. Exercise the production save handler and rename an imported field through its popup before exporting and re-importing Jira time data.
Thanks to xet7 !
Mark imported numeric estimate fields independently of their names, convert hours back to seconds, and honor Dates and Custom Fields export selections. Verify renaming, omissions, invalid and ambiguous values, and actual Jira re-import.
Thanks to xet7 !
Import numeric seconds as spent hours and hidden numeric original/remaining estimate fields. Preserve zero values, reject invalid durations before creating the board, and allow the estimate field to be selected for Scrum. Verify native export retention and existing Jira import compatibility.
Thanks to xet7 !
Index completed card IDs once instead of scanning the closing snapshot for every committed card. Verify 10,000-card snapshots with a deterministic work bound and unchanged commitment, completion and scope totals.
Thanks to xet7 !
Render accessible responsive count and estimate bars from existing filtered snapshots. Separate incompatible units, estimate sources, custom fields and completion policies, retain unknown counts and partial warnings, and preserve Excel/PDF exports.
Thanks to xet7 !
Resume using the stored revision and rollover destination, and reject retries while a History recovery checkpoint is pending. Add browser coverage for successful recovery, read-only denial and pending History exclusion.
Thanks to xet7 !
Add Scrum to board copy choices and reuse transfer remapping for planning records, metadata and snapshots. Collect copied list and swimlane IDs, omit deselected Scrum data and label reduced snapshots in reports and exports.
Thanks to xet7 !
Validate before import side effects, allocate destination planning IDs and remap cards, lists, fields, users and snapshots. Preserve source provenance and expose bounded loss reports to board administrators without granting permissions.
Thanks to xet7 !
Add a selectable Scrum section, scope planning records and snapshots, report omitted references, preserve anonymization and exclude operational recovery state. Native import and History transfer remain documented follow-up work.
Thanks to xet7 !
Share authorization across all nine exporters and retain access only for already scoped Scrum reports. Return HTTP 403 for denied document exports. Document ExportScopeBleed and cover policy, source-wide guards and HTTP behavior.
Thanks to xet7 !
Rewrite known username mentions in Scrum settings, metadata and transfer records. Run the same pass for streaming board and swimlane exports without changing references or estimates.
Thanks to xet7 !
Prepare shared native transfer, duplication and adapter validation with explicit partial-data losses. Reject invalid snapshots, foreign planning references and ID collisions. Runtime integration remains tracked in the Scrum design.
Thanks to xet7 !
Expose existing release and event update methods in Sprints, including release dates and status, event timestamps and follow-up cards. Preserve unchanged timestamps and use existing admin permissions and History.
Thanks to xet7 !
Record compound sprint transitions in existing board History, preserve unrelated card data and enforce current per-item permissions. Keep recovery checkpoints until timeline and undo status are finalized.
Thanks to xet7 !
Filter historical rows before search, counts and contributor aggregation using current board visibility and assigned-card scope. Gate all reversal paths with the same scope and current card/linked-card edit permission so revoked access or an old board cannot authorize hidden-card writes.
Verified 10 focused Node runner entries and eight Chromium scenarios across History and rule undo/redo, including allowed restores and negative cases. Document detection limits to avoid treating legitimate stale permissions as attributable attacks.
Thanks to xet7 !
Reuse board permissions, card estimates and chart exports for Product Backlog, Sprints, Sprint Report and Velocity views. Add revision-checked sprint lifecycle, recoverable rollover, release/event creation and independently hidden metadata controls. Explicitly label assigned-only reports as partial.
Verified 12 focused Node checks, a real Meteor/Mongo lifecycle regression and three Chromium scenarios including settings visibility, denial paths and actual Excel/PDF files. History integration, full transfer mappings and further report/editor work remain tracked in the Scrum design.
Thanks to xet7 !
Keep remaining language coverage and terminology review explicit, with reproducible non-completion counts. Continue other development while translations are paused.
Thanks to xet7 !
Translate remaining Blockly and Blocks editor prose in Hindi and hi-IN, Tamil, Kannada, Bengali, Nepali and Urdu. Preserve placeholders and correct-language translations; repair incorrectly seeded Urdu shared labels. Specialist accessibility and mathematical terminology merits native review.
All three catalog validation suites pass. Pause translation work here at the maintainer's request; Gujarati, Marathi, Malayalam, Punjabi, Sinhala and Telugu remain pending.
Thanks to xet7 !
Translate remaining Blockly prose and editor controls, preserve placeholders and correct-language existing strings, and replace wrongly seeded shared labels. Ladin dialect and Aromanian technical neologisms are low-confidence; Friulian specialist terms also merit native review.
All catalog order and token checks pass. No external translation service was used.
Thanks to xet7 !
Map sprint planning, reports, hidden metadata and data transfer gaps to existing board menus, permissions and features. Clearly distinguish the design from shipped functionality.
Thanks to xet7 !
Lazy-load Blockly for board administrators, preserve existing rule documents and execution, and provide direct List, Workflow, Blocks and History choices. Route workflow writes through server methods. Include local media, complete message-key coverage, translation merging and placeholder checks.
Translation coverage remains incomplete in additional locales. Low-confidence specialist terminology needs native review in Aragonese, Asturian, Corsican, Neapolitan, Occitan, Sardinian, Sicilian, Kashubian, Upper Sorbian, Silesian, Cornish, Manx, Gaelic and Breton; Faroese and Frisian also merit review.
Verified five Blockly/catalog Node tests, existing rules suites and four Blockly Chromium scenarios, including admin permissions, localization, drag editing and persisted execution.
Thanks to xet7 !
Wrap long text and buttons, remove overlapping absolute positioning, and keep form controls readable on mobile, RTL and dark themes. Four Chromium scenarios cover desktop and mobile layout boundaries.
Thanks to xet7 !
Snapshot rules with their trigger and action, combine compound edits, and restore through existing History with board-admin checks and stale-state protection. Cover lifecycle undo/redo, member rejection and conflicting edits in Chromium.
Thanks to xet7 !
Keep replacement trigger and action documents free of MongoDB update operators while preserving creation timestamps. Cover replacement and modifier updates independently.
Thanks to xet7 !
Credit kta1kri for the LDAP report and record the sibling audit, positive and negative tests, local protocol fixtures and Chromium coverage. Do not classify replay-cache capacity failures as attempted replay.
Thanks to kta1kri and xet7 !
Audit authentication boundaries following GHSA-m87f-f43w-hwmc. Guard both LDAP user-bind paths and the DDP/REST entry point, preserve service-account group lookup, compare CAS groups literally, and require single-use SAML request correlation. Add positive, negative, protocol and browser regressions with Problems summaries.
Thanks to kta1kri and xet7 !
Honor the commented Codeberg registry entry even with stale saved settings. Create missing WeKan source and destination clones under the checkout-relative .tools directory, keeping fetched mirror refs out of the primary checkout. Cover fresh clones, paths with spaces, saved settings, failure handling and existing checkout protections with injected commands.
Thanks to xet7 !
Replace the separate without-cards action with one selection popup, defaulting to all parts and providing Select All, Select None and Cancel. Validate choices on the server and preserve parent requirements, card relationships, custom fields and existing board-admin permissions.
Repair attachment copying to use explicit imports and the installed Meteor-Files promise API, wait for flushed file bytes, and propagate copy errors. Verify selection combinations, source preservation, attachments, multiselection, cancellation and denied calls with Node and Chromium tests.
Thanks to xet7 !
Reuse the existing visible comment data and escaped title attribute. Keep the localized count for multiple or empty comments. Cover count fallback and plain-text handling with Node tests, and verify admin/read-only rendering and private-board comment isolation in Chromium.
Thanks to lonix1 and xet7 !
Fixes#1933,
Existing Boards.copy, Swimlanes.copy and Cards.copy do not copy Activities records. Cover source board/card history exclusion, preservation, confirmation cancellation and permission rejection through the real multiselection duplicate actions, with and without cards. Document the existing behavior and refresh the open-issue audit.
Thanks to sfahrenholz and xet7 !
Fixes#2321,
Reuse the existing parent relationship and filter engine from card actions and the filter sidebar. Keep parent choices board-local, allow read-only filtering, and clear the selection when changing boards. Verify filtering, publication boundaries and unchanged card data with Node and Chromium tests.
Thanks to robinvd and xet7 !
Fixes#1871,
Place Draggable before Minicard and Card in a three-column layout that stacks when the popup is narrow. Expand long option menus and pickers into balanced columns while preserving form layouts, search focus, popup stack navigation and permission-filtered options.
Thanks to xet7.
Honor Submit editors with Enter across textarea editors, retain composition and mention handling, and route shortcuts through existing scoped save actions. Preserve manual resize dimensions after typing and retain single-line structured fields.
Keep the typography reset from overriding themed button foregrounds, including Board Settings column actions. Verify blue, green, dark and Clean Light buttons and chart actions.
Thanks to xet7.
Show Flag Language (Flag Country) on one line, retaining directional isolation and the RTL marker beside the language name. Allow long rows to scroll on narrow screens instead of wrapping or hiding their text. Verify all language rows at desktop and phone widths in LTR and RTL.
Thanks to xet7 !
Release ancestry places ZIP previews (2016d15f2) in v12.01, absent from v12.00, and multi-list swimlane drops with named previews (f772663e5) in v12.03, absent from v12.02. Move both unchanged entries out of Status into those sections.
Extend the changelog guard to reject completed release summaries anywhere under Status, including before TODO Later. Verify the regression fails before relocation and all four changelog suites pass afterward.
Thanks to xet7 !
Remove the board-tile Actions hamburger and its popup. Add Duplicate Board — Without cards immediately below Duplicate Board in the All Boards multiselection sidebar, using the shared confirmation, selected-board guard and existing copyBoard permissions.
Verify both copy modes for two selected boards, cancellation, preserved source cards and denied non-admin duplication and archiving. Update the All Boards documentation.
Thanks to xet7 !
Mark the Monte Carlo and size versus cycle time option submit buttons as primary so existing named and custom theme rules supply their background and readable text colors. Verify both pages in default blue, red, dark and custom themes, including hover and keyboard focus.
Thanks to xet7 !
Keep desktop card windows unpainted until initial anchoring completes. Prefer the right side in LTR and the left side in RTL whenever it fits; otherwise use the other side and keep the window inside the viewport.
Verify first-visible-frame geometry for preferred and fallback sides in both directions, and retain passing date-save position regressions.
Thanks to xet7 !
Align each radio button to the left of its label. Verify rendered control geometry, insertion above and below, and read-only restrictions in Chromium.
Thanks to xet7 !
Date saves and removals refresh the board publication. Preserve the mounted view while that same board refreshes, instead of rebuilding its windows at the default dock and anchoring them again. Reset readiness on board navigation as before.
Verify save/delete for Received, Start, Due and End in Chromium, including persisted dates, badge updates and frame-by-frame window position. Cover initial loading, same-board refresh and navigation in a focused readiness test.
Thanks to xet7 !
Record an individual finding and remaining verification for every open issue. Browser tests confirm swimlane names on minicards and board-specific view visibility already work; retain the remaining 133 requests with their outstanding scope.
Thanks to sebastianha and xet7 !
Fixes#1748, fixes#2107,
Reuse owner-scoped unsaved edits, restore titles only before local typing, and clear saved titles after successful insertion. Verify restoration, list isolation, successful saves and denied cross-user writes.
Thanks to TutloTutlo and xet7 !
Fixes#810,
Offer label combination mode under Filter, retaining exclusions and no-label alternatives. Restore active title, list and advanced text when the panel is recreated. Verify actual calendar grid/list results, unmatched and cleared filters, and label combinations in Chromium; pure tests cover reset and invalid modes.
Thanks to Trunkslike, TheBigBloodyB, Roemer and xet7 !
Fixes#2044,
Fixes#3361,
Use the existing Add Swimlane popup for above/below insertion. Restore reachable board-admin archive and duplicate controls in the All Boards tile Actions menu. Preserve existing server permission guards and confirmation behavior. Unit and Chromium tests cover ordering, successful operations, cancellation and rejected writes.
Thanks to bentiss and xet7 !
Fixes#2131,
Fixes#2644,
Record the 149-open-issue follow-up audit with implementation evidence,
original regression commits where available, and explicit remaining scope.
OIDC logout, case-insensitive mentions, remote mobile card closure,
alphabetical member selection, bulk card colors, existing-card subtasks
and minicard field visibility already work. Extend executable logout-hook
coverage and add browser checks rather than relying on method names alone.
All 31 focused Node suites and 27 distinct Chromium scenarios pass across
this audit and its two separately committed fixes. No live external IdP
or FerretDB backend matrix was tested.
Thanks to RowhamD, Usernameisalreadytaken99, rptl, czinkos, bhueck,
Vida444, xefladrero and xet7 !
Fixes#5061,
Fixes#1938,
Fixes#3114,
Fixes#1686,
Fixes#2160,
Fixes#3213,
Fixes#3198,
History restored a list but left deletion markers on its cards. Replay the
existing soft-delete/restore modifiers across the same board/list and batch.
Keep independently deleted cards untouched and refuse lifecycle rows for
lists moved to another board. Preserve the deletion batch in lifecycle
content and record the actual lifecycle state in history snapshots.
The browser regression failed against the previous implementation. It now
passes undo, redo and undo again with persisted card checks. Separate
read-only rejection, pure negative cases, existing history tests and
flow/time-history browser regressions pass.
Thanks to rawwerks and xet7 !
Fixes#1023,
The card-link picker excluded every real card on its own board, and the
server rejected same-board sources. Include the current board and exclude
only sources already mirrored. Preserve coordinate and write validation,
reject link chains, and prevent whole-board self-links through both buttons.
Labels already use the source card. Verify live source-to-mirror updates
and edits through the mirror, same-board authorization failures, whole-board
self-link rejection, and existing cross-board behavior in Chromium.
Focused linked-card Node regression suites pass.
Thanks to RinTheCatato, mohamed-aziz-chamakh and xet7 !
Fixes#5683,
Audit the 159-open-issue snapshot against existing source and regression
coverage. Record the implementations and their original regression commits
in docs/DeveloperDocs/Open-Issue-Completion-Audit-2026-09.md.
Visibility descriptions, field ordering, archived subtasks, linked covers,
checklist-to-subtask conversion, drafts, subtask badges, archive details,
rule toggles/editing and standalone SAML already have implementations.
All 28 selected Node regression suites pass; live browser/IdP tests were
not rerun for this documentation-only audit.
Remove completed TODO entries, correct two unrelated issue references,
and retain incomplete feature requests and deployment investigations.
Thanks to Meeques, Somantiq, javen9881, matrixes, bastos77,
therampagerado, sfahrenholz, Gobliins and xet7 !
Fixes#4421,
Fixes#3877,
Fixes#3409,
Fixes#2498,
Fixes#2422,
Fixes#3243,
Fixes#3207,
Fixes#1504,
Fixes#2322,
Fixes#708,
Describe the new reports, reused data, retained history, issue audit and validation limits. Keep released sections unchanged.
Thanks to sojournerc, ladistrupl, zombah and xet7 !
Keep card and checklist activity after deletion, retain card snapshots for
flow reports, and show recorded hour adjustments by their actual author in
Time and its PDF/Excel exports. Record whole positions centrally, including
optional move reasons and direct REST edits. Append undo/redo checkpoints
so blocker intervals and time corrections follow reversals through time.
Audit the open time-related requests against existing features. Exact inline
activity timestamps requested in #1673 already exist in dateDisplay and the
activities template; add a browser regression for that existing behavior.
Reuse established locale terminology for the new compact labels. Labels
outside English and Finnish are low-confidence glossary combinations for
human review; existing translations remain untouched.
Validation: 43 focused Node suites pass. Fifteen Chromium scenarios pass
across flow analytics, time history and existing REST move coverage, including
real chart and Time PDF/Excel exports, undo/redo, retention and access denial.
Thanks to ladistrupl, zombah and xet7 !
Fixes#1598,
Fixes#1673,
Reuse board dates, activities, estimates, dependencies and universal History for Aging WIP, Blocker Analysis, Monte Carlo forecasts, XmR and size versus cycle time. Keep Chart.js lazy loaded and share parameterized PDF/Excel exports. Record dependency edits in History with undo/redo and board-boundary validation.
Validation: 21 focused Node suites and 8 Chromium tests pass, including every chart download and dependency undo/redo. Report labels reuse native locale vocabulary and formula notation; compact explanatory wording outside English/Finnish has low confidence and welcomes review.
Thanks to sojournerc and xet7 !
Fixes#1476,
Fix InactiveBleed across REST, attachment and export authentication, header login, LDAP token issuance and People account controls. Apply administrator-created account flags before insertion and guard token creation atomically.
Thanks to esbrito81 and xet7 !
Recognize empty swimlane bodies as mixed-selection drop destinations while keeping swimlane drag starts on headers. Replace the count-only indicator with a tilted stack of selected object names and icons rendered as text. Verify two-list moves, card parents, ordering, collapsed containers, both handle modes and persistence after reload.
Thanks to xet7 !
Reuse one control for draggable, card visibility and swimlane/list settings columns. Apply explicit booleans atomically through board-admin authorization, deriving column fields from existing row definitions and retaining personal overrides. Cover every column, repeated clicks, persistence, isolation and denied updates.
Thanks to xet7 !
Default swimlanes, lists, cards, checklists, checklist items and subtasks to draggable. Share settings UI and policy, update ordinary sortables reactively and enforce the policy for mixed-selection drags while retaining explicit menu moves. Cover persistence, authorization, independent defaults and both checklist handle modes.
Thanks to xet7 !
Select lists, swimlanes, cards and checklist content together. Preserve parent hierarchies, validate move permissions, and create a destination card for checklist content dropped onto a list.
Thanks to xet7 !
Use the same progress display and sortable lifecycle on minicards and opened cards. Restore sorting after unfolding, honor both drag-handle modes, and distinguish a checklist drop from board-list card conversion. Verify persisted reordering and transfers across lists and swimlanes.
Thanks to xet7 !
Read destination rows in document order instead of relying on direct siblings, which can be inline-form wrappers. Exclude the drag helper and placeholder. Reproduce moving 45 from last to first and then into the third placeholder, with handles enabled and disabled, and verify persisted order after reload.
Thanks to AmigaAbattoir and xet7 !
Fixes#6723.
Capture the destination checklist and neighboring items before cancelling the sortable DOM move, so Blaze persists the intended order rather than the original position. Cover boundary and cross-checklist moves, card conversion, and actual dragging with reload persistence.
Thanks to AmigaAbattoir and xet7 !
Fixes#6723.
Document SAML administration and its verification limits, restore the People navigation entry, and order the release entries by feature, interface, fixes and release tooling.
Thanks to xet7 !
Provide shared catalog-driven settings controls with environment fallback, live admin overrides, platform configuration and regression coverage. Document the remaining live identity-provider validation requirement.
Thanks to xet7 !
Give SAML and standalone provider actions the same blue background and white text and icons as the password Login button. Verify normal and hover colors in Chromium.
Thanks to xet7 !
Keep the redirect guard after failed login attempts, require writable session storage, and recheck login state after the asynchronous settings request. Cover callback reloads, failures, storage restrictions and delayed responses.
Thanks to Alishara and xet7 !
Fixes#6722,
Resolve the site administrator role from the authenticated download token so the Files Report can open private-board attachments without requiring board membership. Keep ordinary private-board readers subject to membership checks.
Wrap the shared attachment controls inside narrow table cells so neighboring cells cannot intercept the download button.
Verify DOCX, image and PDF preview/download flows in Firefox and Chromium, plus negative authorization cases and eight focused Node suites.
Thanks to xet7 !
Follow moved documentation and component-owned templates, preserve reviewed translations, update date-format guards and account for AuthTraceBleed coverage. Recognize the backup containment guard and select the release npm version locally.
Exercise invitations with a separate member and an open sidebar, match the multiline swimlane composer, and wait for an interactable sign-in field before keyboard navigation.
Verified all 1216 Node suites, targeted checks in three browsers and nine real backup/restore integration checks.
Thanks to xet7 !
Replace the deleted local meteor-node-stubs fork with npm 1.2.30, update Rsdoctor to 1.6.4 for CVE-2026-61782, and remove obsolete build-tool exclusions from Dependabot. Add guards for tracked local manifests and patched lockfile versions.
Refresh APT indexes in the failed managed LXD base after a package download 404 and retry native and variant builds once. Keep unrelated failures fatal and preserve container state.
The app answered successfully but the EXIT trap waited forever after signaling only its launcher. Run the app in an isolated process group, terminate all descendants with bounded escalation, bound HTTP probes, and retain smoke logs. Cover successful startup, failed startup, stalled HTTP and TERM-resistant children on macOS.
Thanks to xet7 !
Keep libatomic1 in Docker runtime dependencies, package architecture-matched libraries and licensing in Linux ZIPs inherited by AppImage and Flatpak, and include the library in Sandstorm. Install it explicitly in native and emulated builders; remove inherited Linux runtime files from Windows and macOS repacks.
Thanks to Nissulya, PetitManchot and xet7 !
List Mac app archives with unzip, handle shallow telemetry scanner paths, ship the Docker deny-hash policy, and discard inherited foreign ELF addons that shadow target prebuilds. Add offline regressions and a native macOS archive check.
Thanks to xet7 !
Fix the legitimate invitation flow and unnecessary anonymous metadata subscription reported in #6692 comment 5811473169. Keep protected profile writes forbidden. Existing account blocks require administrator review; the separate history checksum report still needs the affected stored rows.
Thanks to Nissulya and xet7 !
Review 46 changed runtime files and refresh the telemetry inventory without weakening the release gates. Check the inventory locally before release mutations and in regression tests.
Fix CodeQL alerts 543 and 544 in the loopback login fixture with bounded anchored OAuth header parsing and generic HTTP failures. Remove the same stack response from the shipped Sandstorm adapter. Preserve successful signatures and proxy authentication; add malformed-input, negative source and live browser coverage.
Validated macOS ARM64 build, 1577-file source inventory, 42926-file bundle scan, ten OAuth/Sandstorm browser checks and focused security/release tests. Hosted CodeQL has not been rerun.
Thanks to GitHub CodeQL and xet7.
Defer password-form replay to the next task so Firefox finishes dispatching the original native submit event. Keep duplicate submissions blocked and retain useraccounts validation and two-factor handling.
Reproduced registration success followed by silent login failure in Firefox 156.0.1. Verified wrong-password rejection, click and Enter login, and cookie resume in the rebuilt app. Add native-event browser and negative unit coverage; Chromium password/TOTP and emailed-code checks also pass.
Thanks to xet7.
Fill two English placeholders in 232 non-English locales, retaining existing item names and exact interpolation tokens. Add locale-wide interpolation and negative checks plus Finnish, French, Japanese and Hebrew browser coverage.
Low-confidence drafts needing fluent review: Cherokee, Inuktitut, Greenlandic, Tigre, Wolaytta, Fulah, Venda, Tamazight, Nahuatl, Veps, Aromanian, Ladin, Kashmiri, Konkani, Dzongkha and Guarani. Record vocabulary sources and verification limits.
Thanks to xet7.
Verify due dates, labels and restored Unicode descriptions, record the complete Chromium baseline and unresolved failures, and document the import/menu fixes in Upcoming.
Thanks to xet7.
Wire organization bulk controls, preserve Jira ADF descriptions and activity-independent attachments, skip empty CSV rows, and reject invalid source shapes. Apply the import-disable switch and shared transfer validation to Trello HTTP imports.
Add documented dummy format fixtures, positive and negative browser checks, menu inventory guards, and an implementation audit with explicit coverage and format limitations. Thirty new Chromium checks and the corrected cross-board move regression pass on macOS ARM64 with FerretDB; focused Node suites pass.
Thanks to xet7.
Show radio choices beneath every creation title, even when empty. Reuse translated item names and register new label fallbacks without overwriting existing translations. Create boards sequentially with shared creation settings and prevent overlapping submissions.
Verify one/many flows in five Chromium tests on a macOS ARM64 build, plus title, board-batch, locale, shared-form and documentation checks.
Thanks to xet7 !
Start the shared scheduler and use valid daily expressions. Preserve all
application collections, BSON types, indexes and selected file versions in
portable archives, validate content before restore, and report failures.
Document every Admin Panel implementation and its validation limits. Add
real-database round trips, failure cases and browser coverage for scheduling,
restore, file downloads, every pane route and permission boundaries.
Thanks to markusst1982 and xet7 !
Fixes#6683,
https://forums.meteor.com/t/meteor-3-6-beta-x-rspack-2-x-native-typescript-node-js-26-pnpm-monorepos-instrumentation-pwas-and-a-friendlier-cli/64773/7
"Anyone testing Meteor 3.6-beta.1 with an AI coding assistant: I’ve published Meteor Agent Skills v1.1.0-beta.1.
It adds a meteor-typescript skill for meteor types, declaration providers, JavaScript IntelliSense, and type checking. The existing skills have also been updated for the beta.1 changes to Rspack, Node.js, Accounts, instrumentation, and DDP.
npx skills@latest add 'meteor/agent-skills#v1.1.0-beta.1'
Native declarations are opt-in, so the TypeScript guidance should help you keep a working @types/meteor or zodern:types setup until you choose to migrate. If an assistant gives you advice that doesn’t fit your app, please share the prompt, Meteor version, and relevant configuration. That feedback will help us improve the skills before the stable release."
Add September feature instructions, preserve guide forwarding links, and document backup coverage with descriptive screenshots from #6683.
Thanks to markusst1982 and xet7 !
Offer one multiline item or separate items for nonempty lines. Preserve order, prevent overlapping submissions and retain multiline list and swimlane names when editing and displaying them.
Thanks to AmigaAbattoir and xet7 !
Fixes#6714,
Remove inherited form-field minimum height, padding and margins from the native checkbox and center its flex row. Verify checkbox dimensions and label alignment in both Disabled and Enabled states.
Thanks to xet7.
Place the bold Member Settings: Date Format heading directly after board status. Show a live Enabled or Disabled checkbox label above the format selector, with rules before week-start and calendar-system controls. Reuse existing translations.
Thanks to xet7.
Place the existing immediate preference below Save and a horizontal rule. Verify the member Date popup displays date-format controls directly above week-start and calendar settings.
Thanks to xet7.
Move week start and calendar system below Date Format and remove their controls and writes from Change Settings. Capture all selections before saving, await week-start persistence, and retain existing translations.
Thanks to xet7.
Apply enabled member overrides before board and global defaults. Show inherited
status and saved formats using existing translations, and keep the card section
named Date. Cover rendering, exports, permissions, date-only formats and settings
isolation.
Thanks to xet7.
Capture sign-in submission before asynchronous provider selection, keep the form mounted, and complete only the chosen login path. Preserve password validation and show provider errors without redirecting.
Thanks to Nissulya and xet7 !
Fixes#6692,
Preserve local instrumentation and security logging, opt out of Meteor package statistics, and audit release bundles and repackaged binaries before publication.
Thanks to xet7.
Add the Occitan, Breton, Wolof, Walloon, Volapuk and Standard Moroccan Tamazight corrections to the upcoming release notes, including their verification and review status.
Correct the Tamazight SMTP port label and refresh audited review records for the translated checklist examples. Preserve their comma-separated input syntax while retaining target-language item names.
Show when a partial file audit stopped before inspecting storage, allow larger bounded inventories, and avoid orphan findings from truncated metadata. Restore available locations in Offices and People, wrap long report cells, and theme report action buttons.
Publish only the public boards a logged-in user has starred and include them in Favorites queries. Preserve private-board access rules when a previously public board changes visibility. Cover the public-board flow in Chromium and the selector boundary in Node tests.
Thanks to nalilord and xet7 !
Fixes#6713,
Read stored per-user list state reactively instead of caching an early expanded fallback in Session. Cover profile hydration and a Chromium reload with the persisted swimlane-scoped value.
Thanks to Nich01asFox and xet7 !
Fixes#6712,
Route internal card links within the current WeKan page and wait for the destination card subscription before treating it as unavailable. Cover same-tab navigation in Chromium and link classification in Node tests.
Thanks to carl-unique and xet7 !
Fixes#6711,
Share native file and bundled libmagic detection across uploads, extension correction and administrator file checks. Include the portable WASM database in runtime dependencies, stage native file for Snap and Linux setup, and verify release assets before smoke boot.
Cover portable detection with native file absent, missing dependencies/assets, isolated release layout and HTML diagnostics in Chromium, Firefox and WebKit.
Thanks to xet7 !
Add shared controls above Files, Filesystem integrity and Recovery for content/type checks, storage inventory and history correlation, with progress, cancellation and a downloadable bounded summary.
Report incomplete upload metadata separately from missing binaries. Compare filesystem and GridFS references, sizes, MIME/extension aliases, hashes and baseline evidence; correlate undo/activity history with candidate renamed or moved files. Preserve files and records, enforce administrator access and scan limits, and explicitly report unknown or unverified coverage.
Verify five focused Node suites and two browser scenarios in Chromium, Firefox and WebKit. Rerun header-first content detection in all three browsers. Document storage and verification limits.
Thanks to xet7.
Anchor runtime resolution at programs/server/npm so Office search indexing finds fflate, PDF indexing finds its worker and assets, and image conversion finds sharp. Parent resolution keeps source development working. Retain the file utility as a Docker runtime dependency for MIME detection.
Verify six focused regression suites and XLSX extraction plus PDF asset resolution in an isolated release container. Include negative archive and missing-dependency coverage.
Thanks to xet7.
Cache Meteor package transforms, make development DEBUG logging opt-in, and replace legacy CAS URL parsing while preserving callback encoding and custom HTTPS ports. Clean attachment metadata during browser fixture teardown, including failure paths.
Verify six focused Node suites, nine sequential browser checks across Chromium, Firefox and WebKit, and live HTTP requests with deprecation tracing. Document the package cache and verification limits.
Thanks to xet7.
Repair 841 wrong-language or previously audited bad values from the pull while preserving 77 Persian and Portuguese updates. Record exact rejected locale/key/value fingerprints, validate fallback tokens and content, and reapply existing audited corrections without replacing newer human wording.
Separate adjacent interpolation tokens and clarify pre-merge diagnostics. Actual merge replay, 11 focused Node suites, 21 human-preference checks and Veps/Tamazight UI cases in Chromium, Firefox and WebKit pass. The Quechua width label uses attested kinraynin; full grammar remains low confidence pending native review.
Thanks to xet7 !
Record sequential EVERYTHING coverage across Chromium, Firefox and WebKit, development database lifecycle checks, application fixes and the companion FerretDB test-runner fixes. State unsupported browser-specific coverage and the unconfirmed intermittent Firefox failure.
Thanks to xet7 !
Add Dev server nobuild to both build menus with shared URL and port options. Load checkout JavaScript and templates in memory using the installed Meteor toolchain; start its bundled MongoDB on the next port and wait for owned database shutdown.
Run server, Node, import, E2E and all supported Chromium, Firefox and WebKit regressions sequentially, stopping on failure. Preserve CommonJS semantics, native fetch, dynamic import namespaces and client source access boundaries. Document verified results and the remaining Windows and intermittent Firefox limits.
Thanks to xet7 !
Read the current user once and only offer description recovery when its published profile explicitly enables it. Session initialization can publish the user before the profile, which previously threw from the details-pane close handler.
Exercise missing users and profiles, recovery opt-in, unchanged drafts, save and discard from the actual handler. A browser regression removes the profile and closes a card without errors; it passes in Chromium, Firefox and WebKit.
Thanks to xet7 !
Run portable drag-sort tests in Chromium, Firefox and WebKit and include global feature toggles in serial runs. Keep drag gestures inside the viewport and focus comment inputs with a real click before testing mention hit targets. Require the swimlane creation popup and its input instead of accepting an unrelated visible lane.
Affected tests passed in all three browsers. Raw CDP touch remains Chromium-only.
Thanks to xet7 !
Use document-ready navigation for report permissions, board comment publication and phone board layout. Explicitly await the non-admin session before testing version lookup authorization. Positive and negative comment visibility and phone geometry assertions remain intact and pass in Chromium.
Thanks to xet7 !
The non-Latin keyboard bridge dispatches synthetic events on document. The shortcut filter previously called closest on that non-element target, throwing during Tab navigation on signed-out pages. Fall back to the focused element and safely reject missing focus.
Unit tests cover native and document-targeted events, form and interactive controls, editable content, selections, disabled shortcuts and Escape. The signed-out layout browser regression passes in Chromium.
Thanks to xet7 !
Replace idle-network navigation waits with document readiness followed by the existing user, control, sorting, search and permission assertions. Template copying, board sort/search and server pagination regressions pass in Chromium on the source server.
Thanks to xet7 !
Preserve Requested By and Assigned By accessibility checks and description persistence assertions without waiting for persistent Meteor connections to become idle. The card members and description browser group passes in Chromium.
Thanks to xet7 !
Keep voted-state, database membership and visible count assertions after document-ready reloads. Positive, negative and vote-count regressions pass against the source development server in Chromium.
Thanks to xet7 !
Avoid idle-network reload waits with persistent Meteor connections. Require the seeded label to be selected and displayed instead of accepting an open popup as success.
The focused label regression and the remaining date-editor Chromium tests pass against the source development server.
Thanks to xet7 !
Replace idle-network navigation waits with document readiness and the existing layout, session and persistence assertions. Meteor SockJS requests can stay active after the page is ready. Verify immediate comment persistence, list order, view changes and repeated sign-in page loads on the source development server.
Remember the requested path before the sign-in guard redirects an initial page load. After authentication, restore that local URL instead of always opening All Boards, using the router redirect API to preserve deployment prefixes. Keep external targets rejected and sign-in enforcement unchanged. Verify direct My Cards navigation, assigned-card inclusion, unassigned-card exclusion and cookie/Sandstorm regressions.
Count unread profile records for the bell without requiring activity details that are subscribed only by the open drawer. Cover read and missing records, and verify a watching member receives a live mention alert in a separate browser session.
Align the sign-up browser regression with the adopted A05 accessibility behavior. Tab reaches both visibility buttons; Space and Enter reveal and hide passwords without submitting a valid form. Enter in the confirmation field still creates the account, and test accounts are cleaned up on failure.
Replace idle-network reload waits in membership and search regressions with document readiness and existing visible-control assertions. Verify member removal instead of silently bypassing missing controls. Bound HTTP and HTTPS readiness checks and reject failed, unhealthy or stalled servers rather than skipping all browser tests successfully.
Avoid a stale empty swimlane or list cache in the destination subscription ready callback. Cross-board moves now select a valid destination and enable Done without waiting for another user change. Cover delayed cache refresh alongside stale requests and rejected operations.
Keep mobile sidebar controls below headers that appear after login or a route change. Cover delayed rendering, resize updates and destroyed templates, and wait for document readiness in the mobile Search browser regression.
The muted-assignment fix in 4be77e7189 and scoped-subscription/settings fix in 03e8a6bf66 are already present. Add browser regressions that capture SMTP email for board, list and card watching, comments, title changes and new cards; verify muted assignments and member email opt-outs stay silent. Correct the channel settings guide and document delivery prerequisites and test setup.
Ten SMTP scenarios and six existing tray/settings scenarios passed across Chromium and Firefox against the current Meteor bundle with MongoDB. Focused recipient and notification Node suites passed. External inbox delivery and FerretDB runtime were not verified; the latest reported delivery failure was not reproduced.
Thanks to Nissulya and xet7 !
Fixes#6658,
Add board controls for minicard collapse, labels above the title, checklist due dates and the outer checklist heading. Keep previously collapsed content accessible when its control is hidden, and preserve stored content and existing defaults.
Add personal and admin date-only formats across calendars and exports. Extend the existing smaller font presets with compact checklist and settings spacing. Cover persistence, permissions, layout and date behavior with unit and browser tests.
Thanks to xet7 !
Use the Markdown textarea for every editor. Remove the retired environment and Snap options from server settings, all platform launchers, build scripts and current documentation. Keep released and archived changelog entries intact.
Keep notification HTML escaping independent of editor configuration, preserve attachment metadata and mention behavior, and cover Markdown and emoji round trips in browser tests. Also import the translator used by attachment error handlers.
Thanks to xet7 !
Repair relative ordering and destination dialog lifecycles, retain failed operations, and make checklist, rule and attachment controls keyboard accessible. Improve scaled layouts and reuse canonical translated labels.
Add source-execution and Chromium/Firefox regression coverage, including awaiting background persistence before reload. Record implementation decisions and validation limits.
Thanks to xet7 !
Initialize autocomplete once per editor, place its styled menu above card windows, and fall back to the textarea when Summernote is unavailable. Verify pointer and keyboard selection for password and LDAP account fixtures.
Thanks to bbyszio and xet7 !
Fixes#6704.
Bind sortable initialization and reactive work to the replaceable list body, and clean it up on destruction. Cover repeated collapse, expansion, reload and drag permissions.
Thanks to Nich01asFox and xet7 !
Fixes#6705.
Recover the project repository used for submission, retry recipe creation while Launchpad indexes main, and reject incomplete snaps before remote cleanup. Run the compatibility wrapper inside Snapcraft's own environment.
Verified all 1173 Node suites sequentially, workflow lint and script syntax. Regression coverage exercises delayed refs, unrelated errors, recovery paths, invalid downloads and launcher argument handling without remote writes.
Thanks to xet7 !
The v11.85 logs show ARMHF failing during Launchpad polling after TLS EOF,
PPC64EL and S390X reaching the six-hour job cap while queued, and AMD64
successfully publishing to the Snap Store before its GitHub attachment hung.
Recover existing recipes before considering a new submission, and share one
five-hour waiter budget across attempts on every architecture. Prepare an
isolated complete source snapshot with Git metadata and logs outside the
project hash, and distinguish architectures so matrix recipes stay separate.
Move downloaded artifacts out before retrying recovery.
Bound GitHub snap attachments and verify remote names and sizes. Exercise
these paths with fixture repositories and mocked network commands, covering
TLS failures, absent recipes, denied credentials, queue timeouts, invalid
artifacts and failed uploads. Workflow parsing, shell syntax and Actionlint
pass. The full 1,172 Node suite sweep is verified with corrected guards rerun.
Live remote builds and publishing have not been run.
Thanks to xet7 !
Place the global date format checkbox and selector between Board member
list and Wait Spinner in Visibility settings. While enabled, use the
selected format for members and guests, call the card section Date and
hide its personal format selector. Preserve personal preferences so they
return when the override is disabled.
Apply the same policy to date displays, filter parsing and browser export
requests. Validate supported formats and retain admin-only settings writes.
Add positive, negative and browser regression coverage and document the
setting. Translate the new label without changing existing translations.
Lower-confidence new translations include Acehnese, Aymara, Cherokee,
Inuktitut, Kashmiri, Nahuatl, Veps, Volapuk and Wolaytta; native-speaker
review would improve these labels.
Thanks to Mathia2 and xet7 !
Fixes#6703,
Bind card and board identifiers explicitly on links rendered under lexical each loops. Open the subscribed card popup from the link rather than the unrelated outer Blaze data context, while preserving modified-click navigation.
Regression tests cover outer-context mismatch, nested click targets, missing identifiers, modified clicks, and sequential card popup selection on both pages. The fresh bundle passes both page regressions in Chromium, Firefox and WebKit using polling reactivity.
Thanks to Mathia2 and xet7 !
Fixes#6702,
Preserve the newer Traditional Chinese wording in historical repair records. Locate the card read-only branch by its matching conditional rather than fixed indentation after optional field grouping.
Verified all 1169 Node suites pass, translation pull/fill protection passes, and missing requester or assigner avatars still fail the repaired guard.
Thanks to xet7 !
Record notification, empty-card-section, WIP-group and duplicate-checklist fixes with their regression coverage. Link the tested FerretDB oplog changes and retain #6701 in TODO Later until the affected snap's database is confirmed. Verify the exact resumed user in the session regression.
Thanks to Nissulya, fabiosalles, Mahgozar, rmb82 and xet7 !
Resume an LDAP account with 1600 directory users, verify reloads before and after a bulk deletion, keep the directory out of client publications, and reject invalid cookies. The test passes against MongoDB and patched FerretDB; retain #6701 pending confirmation of the reported deployment's backend.
Thanks to Nissulya and xet7 !
Refs #6701,
Route group edits through a validated server method with board/site-admin authorization. Compare the saved group array before updating so concurrent edits are not overwritten and database backends need no positional array update. Unit and Chromium tests cover editing, invalid lists and limits, and unauthorized users.
Thanks to Mahgozar and xet7 !
Fixes#6699,
Check the persisted profile notification array and exercise comments delivered to explicit list subscribers on otherwise muted boards.
Thanks to Nissulya and xet7 !
Fixes#6658,
Keep the existing client insert path, wait for its server callback, and retain the editor on failure. Verified click, Enter and Ctrl+Enter creation and persistence in Chromium, plus duplicate-submit and retry unit tests.
Thanks to rmb82 and xet7 !
Fixes#6700,
Stop handled Enter events before the enclosing checklist submits them again. Await the insert, scope the textarea to its form, and reject duplicate submits while the write is pending. Keep failed edits available for retry.
Thanks to rmb82 and xet7 !
Fixes#6700,
Restore native checkbox visibility and keyboard interaction inside the WIP group editor, and resolve list rows through the template helper when editing saved groups.
Thanks to Mahgozar and xet7 !
Fixes#6699,
Render Dates, Members and Sort groups only when their fields can display content. Keep a group when any independently enabled field remains visible.
Thanks to fabiosalles and xet7 !
Fixes#6696,
Keep muted board assignments silent while honoring explicit list and card subscriptions. Resolve notification controls against their owning settings scope and show the selected option.
Thanks to Nissulya and xet7 !
Fixes#6658,
Activate the card link instead of its date badge and open the Board View popup before choosing timeline, chart and Gantt views. The complete 24-case Chromium title suite passes sequentially.
Update the regression check to require one value-guarded ReactiveVar setter shared by the viewer and startup autorun. The focused external-link suite now passes all 24 tests.
Expose the renderer through a Meteor main module, synchronize security settings without repeated reactive invalidation, and route canonical avatar downloads around the automatic Meteor-Files handler. Update browser tests for the visible Board View and list menus, correct fixture IDs and authentication headers, and wait for the settings publication where direct Mongo updates are used.
Use the explicit Tigre Member and Members pair across seven board, filter, selection and rule controls. Reuse reviewed Tigre control terms and add former-seed coverage.\n\nThanks to xet7 !
Replace Tigrinya-specific Speed and Storage spellings with forms attested in the Tigre corpus and native Tigre Wikidata interface. Add exact and former-seed coverage.\n\nThanks to xet7 !
Use corpus-grounded Tigre terms across seven Font, Invite People and Change permissions controls. Add exact and former-seed regression coverage.\n\nThanks to xet7 !
Record corpus evidence, residual overlap, limitations and regression coverage for the repaired Rename and board-background controls.\n\nThanks to xet7 !
Use corpus-attested Tigre name, change, image and background terms across eight Rename and board-background controls. Add exact and former-seed regression coverage.\n\nThanks to xet7 !
Use corpus-attested Tigre terms across eight Overall progress, CPU usage, Card loading and Remaining time controls. Preserve CPU and add exact former-seed coverage.\n\nThanks to xet7 !
Replace the misleading physical-weight seed in three Severity controls with a corpus-grounded Tigre severity-level compound. Record its compound grammar as low confidence and add negative coverage for the former seed.\n\nThanks to xet7 !
Use the Tigre export action attested in a software-context corpus entry across the generic, list and board export controls. Add exact and former-seed regression coverage.\n\nThanks to xet7 !
Record the evidence, residual overlap counts, test coverage and source commit for the reviewed Tigre administrative and location controls.\n\nThanks to xet7 !
Use corpus-attested Tigre terminology for administrator, organization administrators, confirmation, type, location and adding a location. Add focused coverage for all corrected controls and their former Tigrinya seeds.\n\nThanks to xet7 !
Replace ten incomplete English seeds with the attested calendar-noun family while preserving named systems, calculated epochs, and moon-sighting distinctions.
Thanks to xet7 !
Replace seventeen Azerbaijani, English, and incomplete labels with a coordinated modern date-reckoning family while preserving every named calendar and variant distinction.
Thanks to xet7 !
Replace the incomplete English calendar name with an Ewe calculation-and-epoch draft while preserving the distinct astronomical variant.
Thanks to xet7 !
Replace the final tracked Finnish paragraph with a Veps draft while preserving every executable operator, quote, escape, grouping, and regular-expression example.
Thanks to xet7 !
Replace four Finnish keyboard-shortcut values with a coordinated Veps keyboard-command draft while preserving state transitions, route behavior, and the literal question-mark binding.
Thanks to xet7 !
Replace the Finnish checkbox label with Veps arithmetic-addition and list-top terminology already verified for the numeric total tooltip.\n\nThanks to xet7 !
Record the five repaired UI roles, source bindings, descriptive terminology basis, focused checks, and remaining low-confidence review.\n\nThanks to xet7 !
Replace the Finnish accessibility family with a consistent Veps access-for-everyone draft across navigation, settings, fields, and the public empty state.\n\nThanks to xet7 !
Record the corrected card-loading semantics, native terminology basis, focused verification, and remaining low-confidence review in the audit and Upcoming changelog.\n\nThanks to xet7 !
Replace wrong-language labels, stale manual loading guidance, and a Russian multi-selection hybrid with a coherent Veps card-loading group. Preserve the automatic threshold behavior and exact operator configuration literals.\n\nThanks to xet7 !
Update the audit, native evidence review, and Upcoming changelog with the verified voting-side repair and its remaining confidence limit.\n\nThanks to xet7 !
Replace four Finnish participant and action labels with Veps forms based on the native voting, support, defense, and opposition entries. Add semantic regression checks.\n\nThanks to xet7 !
Replace Tshivenda and Finnish headings with an attested Veps summary term and the locale's existing status label. Add exact regression checks.\n\nThanks to xet7 !
Update the short audit, detailed evidence, Veps review, and Upcoming changelog with the verified local repair and expanded wrong-language candidate scan.\n\nThanks to xet7 !
Replace Zulu card-number labels with Veps wording, preserve the search syntax placeholders, and add regression coverage for the complete search group.\n\nThanks to xet7 !
Use the rendered native phrase for addition of numbers and preserve custom number fields marked for list top. Full compound and case grammar remains under review.
Preserve current versus generic usage and average system load. Reuse local Veps terminology; full computing compounds and core vocabulary remain under review.
Preserve possible login delay, login-required message, loading indicator and CPU condition until background work finishes. Full computing terminology and grammar remain low confidence.
Preserve zero remaining, missing recent completions, weekly pace and conditional completion date. Full projection, recency and count grammar remains low confidence.
Replace Tshivenda vote-sorting and detail text and Finnish voting heading with Veps vocabulary. Sorting case and full context terminology remain under review.
Preserve QR and manual setup alternatives, six-digit codes, every-login requirement and invalid-code retry. Full computing compounds and native grammar remain low confidence.
Preserve enable and disable actions, popup title and account-specific enabled status. Full two-factor terminology and grammar remain low confidence; setup instructions still require repair.
Replace Tshivenda with a project-code paraphrase and retain ID and owner/repo alternatives. Native project and code vocabulary is attested; full multi-tracker terminology remains low confidence.
Preserve external tracker, background checks every 15 minutes, and the immediate manual action. Full draft grammar and computing loans remain low confidence.
Replace the Tshivenda empty-source option with a Veps inactive-state paraphrase. Keep enabled, failed and never-synced states distinct. Derived noun and complete grammar remain low confidence.
Preserve pending, success, error and stop meanings and the exact error placeholder. Derived synchronization noun and case grammar remain low confidence.
Use native memory-usage and size wording with the precise RSS acronym. Full computing grammar and native expansion of resident set remain under review.
Verify Bara search with a positive color entry; retain unresolved magenta without misclassifying missing results as language approval.
Thanks to xet7 !
Inspect Cunia dictionary entries and identify the newer Bara dictionary for unresolved magenta attestation. Preserve existing translation and counts.
Thanks to xet7 !
Preserve possible successful import despite errors and the All Boards location. Probability paraphrase and complete grammar remain low confidence.
Thanks to xet7 !
Preserve the requirement for at least one administrator, replacing the wrong permission explanation. Complete grammar remains low confidence.
Thanks to xet7 !
Replace French checked and unchecked labels with state phrases, keeping them distinct from imperative actions. Checkbox terminology and complete grammar remain low confidence.
Thanks to xet7 !
Replace Arabic with a Tamazight draft preserving star action and shortcut destination. Use contextual here rather than a physical bar noun. Software adaptation remains low confidence.
Thanks to xet7 !
Add optional checklist dueAt with the shared selected-calendar picker and badge. Return checklist and item deadlines from checklist and single-card GETs. Accept validated timezone-qualified ISO deadlines in checklist/item POST and PUT; null clears, omission preserves. Keep existing write permissions and ownership checks. Node regression and Chromium save/clear test pass.
Thanks to rmb82 and xet7 !
Fixes#6693,
Read Blaze event data instead of surrounding template data. Chromium regression verifies mixed selections retain added labels and members; unit coverage distinguishes template and event contexts.
Thanks to AmigaAbattoir and xet7 !
Fixes#6694,
Correct reversed assign/unassign handlers, isolate bulk label selectors from the sidebar create-label action, stop propagation, await mutations and ignore repeated clicks in a double-click sequence. Behavioral regression verifies action direction and popup wiring.
Thanks to AmigaAbattoir and xet7 !
Fixes#6694,
Preserve non-undoable deletion and loss of all related activities. Keep vote and card scopes distinct. Full contextual grammar remains low confidence.
Thanks to xet7 !
Replace eight French fragments using existing native terminology. Preserve list ownership, list versus swimlane destinations, checklist identity and distinct add/remove actions. Complete contextual grammar remains low confidence.
Thanks to xet7 !
Reuse established card, checklist item and label terminology. Test distinct add/remove meanings and preserve translation tokens and human preference. Contextual phrasing remains low confidence.
Thanks to xet7 !
Document dictionary evidence, full-phrase uncertainty and passing regression checks. Reconcile the live queue to 195 pending original findings.
Thanks to xet7 !
Replace French rule labels using existing checklist terminology and the IRCAM punctuation-comma sense. Preserve the required comma-separated input instruction and regression coverage. Complete phrase grammar remains low confidence.
Thanks to xet7 !
Keep conversion before restricted deletion and preserve same-title populated counterpart and continuation question. Full compound grammar remains low confidence; removed migration behavior is unchanged.
Preserve certainty question and restriction to duplicate lists sharing a name and containing no cards. Full passive and shared-name grammar remain low confidence for native review.
Retain future discovery and repair statement with explicit continuation question. Match the description scope. Full question grammar and technical compounds remain low confidence; no removed migration is activated.
Retain discovering and repairing missing or corrupted lists in board structure. Full passive grammar and computing adaptation remain low confidence. No removed migration is activated.
Use IRCAM description noun in minicard-description and detailed-description labels while retaining summary and search shorthand. Surrounding phrase grammar remains under review; original ledger provenance is preserved.
Use dictionary-attested description wording distinct from summary. Preserve destination-card meaning and literal title/description JSON properties. Complete instruction grammar remains low confidence for native review.
Preserve moving tasks out of this list or increasing the WIP limit. Avoid deletion wording from the French seed. Complete grammar, numerical-limit adaptation and politeness remain low confidence for native review.
Preserve distinct creator/member card scope and watched boards, lists or cards. Reuse notification wording and native watchlist components; complete passive and object agreement remain low confidence. No active client/model references were found for these catalogue keys.
Replace English country-only wording with calendar, country and moon-seeing components. Complete nominalized phrase and grammatical agreement remain low confidence for native review.
Use calendar and moon nouns with dictionary-attested sighting wording. Preserve distinct tabular calendar semantics and original correction provenance. Complete compound grammar remains low confidence for native review.
Replace clock-only and English labels with calendar, table/count and beginning wording. Explicit Julian epoch dates retain the civil versus astronomical distinction. Complete technical compounds remain low confidence for native review.
Date source and dictionary evidence in audit and Upcoming changelog. Retain passive negation relative grammar and broader uncertain translation scope. Audit and changelog checks pass.
Thanks to xet7.
Keep never-for-this-board and creator-or-member card notification scope distinct. Use IRCAM future negation and participant terms with existing notification wording. Four focused suites pass; passive inflection negation placement and complete relative grammar remain under native review.
Thanks to xet7.
Date reminder-root and temporal evidence with source commit and passing checks. Keep aspect accessibility Aromanian and all broader uncertain findings in scope.
Thanks to xet7.
Preserve approaching now and past deadline meanings and exact placeholders. Use IRCAM reminder marked variant and approach/passage roots with existing deadline terminology. Four focused suites pass; inflection and temporal aspect remain under native review.
Thanks to xet7.
Date source and dictionary evidence and update Upcoming changelog. Retain native clause and platform/load-average review limits. Audit and changelog checks pass.
Thanks to xet7.
Describe time since operating-system start, matching os.uptime and the Information view. Use IRCAM beginning, passage and operating-system terms; avoid film runtime and physical platform senses. Four focused suites pass after removing a duplicate test constant. Relative clause and computing-startup adaptation remain under native review.
Thanks to xet7.
Date the source correction and primary dictionary/software evidence. Preserve remaining native grammar review scope and record passing audit and changelog checks.
Thanks to xet7.
Replace the speculative derived noun with IRCAM anmala, also attested in MediaWiki default-sort software wording. Preserve original ledger before-value and add negative regression for the superseded form. Four focused suites pass; full grammar and other technical compounds remain under review.
Thanks to xet7.
Update dated audit progress and Upcoming changelog with the source commit, lexical evidence and passing checks. Preserve low-confidence grammar and technical compounds in the full audit scope.
Thanks to xet7.
Preserve board data integrity checks and repair scope, including list ordering card positioning and swimlane structure. Use IRCAM lexical evidence and record derived ordering noun, inflection and computing collocations as low confidence. Four focused suites pass after correcting the regression test root constant; removed migration code remains removed.
Thanks to xet7.
Date source-backed automatic loading repairs and regional board terminology review. Preserve Arabic-script and broader native-review scope. Audit and changelog checks pass.
Thanks to xet7.
Translate automatic card loading, threshold, live count and exact operator environment overrides. Replace personal laziness sense with on-demand loading. Carry reviewed board forms into matching regional prose and review eight independent core roadmap clone and notification values. Five suites pass including 28 loading behavior checks; Arabic-script and native technical reviews remain open.
Thanks to xet7.
Update dated audit progress and Upcoming changelog with source and morphology evidence. Record stale loading guidance as unfinished and retain all broader uncertain findings. Audit and changelog checks pass.
Thanks to xet7.
Review all council-term sentences against English and use the established taxta board noun. Preserve plural case and possessive morphology, with explicit selection schedule search invitation and multi-board corrections. Translate visibility with existing labels and preserve HTML. Five focused suites pass; stale loading instructions and remaining technical phrasing stay in scope.
Thanks to xet7.
Date the whole Khmer council-sense sweep and related semantic fixes. Update the short audit summary and Upcoming changelog with source commit and passing validation while retaining full technical review scope.
Thanks to xet7.
Review all council-term sentences against English and replace the governing body sense with the established board noun. Correct financial deposit, list purchasing, multi-board calendar and extra board in swimlane selection. Translate visibility terms using existing locale labels and preserve HTML. Five focused suites pass; full native technical compounds remain under review.
Thanks to xet7.
Update dated audit and Upcoming changelog with source evidence, alias correction and validation. Keep broader council-term sentences and native computing collocations under review. Audit and changelog checks pass.
Thanks to xet7.
Distinguish Kanban boards from administrative councils in board labels and restore actions. Use Archive on All Boards in complete instructions. Preserve Khmer locale aliases and historical ledger before-values. Five focused suites pass after correcting alias bookkeeping; remaining council wording and native computing collocations stay under review.
Thanks to xet7.
Update dated audit progress and Upcoming changelog with source commit and validation. Keep Uzbek Khmer remaining archive locales and native collocation reviews in scope. Audit and changelog checks pass.
Thanks to xet7.
Use existing Archive and All Boards labels in Malayalam Marathi Gujarati Punjabi Nepali Sinhala Mongolian and Kazakh. Preserve restoration terminology and replace obsolete header navigation, including the English Sinhala Archive label. Five focused suites pass; full native collocation review remains part of the broader audit.
Thanks to xet7.
Date the Irish Serbian and Tagalog corrections, cite Irish dictionary evidence and preserve native-review limits. Update the short audit summary and Upcoming changelog with the local source commit. Audit and changelog checks pass.
Thanks to xet7.
Use the Archive section on All Boards and preserve existing locale labels. Choose the attested Irish bring-back sense, preserve Serbian board terminology, and replace mixed English in Tagalog. Full Irish navigation grammar remains a derived translation pending native review. Five focused suites pass.
Thanks to xet7.
Accept template whitespace in the regional row assertion. Confirm both LTR and RTL Chromium layout tests pass and record the existing first-line marker fix under the Upcoming release.
Thanks to xet7.
Update dated audit and Upcoming with 21-file repair and native terminology evidence. Preserve low-confidence computing phrases and remaining locale reviews. Three documentation suites pass.
Thanks to xet7.
Correct current Archive locations and Zulu place labels. Replace Bulgarian in Macedonian, phonetic English in Urdu and mixed English in Maltese. Five focused suites pass; Maltese/Zulu computing collocations remain low confidence and other locale reviews remain open.
Thanks to xet7.
Update dated audit and Upcoming with 34-file repair, six consistent place labels and superseded Galician acceptance. Retain other locale and native/UI review limits. Three documentation suites pass.
Thanks to xet7.
Replace obsolete locations and Persian-in-Arabic/Malay-in-Indonesian prose. Correct six base/regional Archive place labels, keeping guidance consistent. Supersede the Galician unchanged acceptance with its dated correction. Focused locale/menu suites pass; other languages and browser paths remain open.
Thanks to xet7.
Correct obsolete locations and three Archive place labels. Review independent Argentine Spanish, Peruvian Spanish and Brazilian Portuguese guidance; update matching regional copies elsewhere. Five focused suites pass. Czech main-menu wording retained; Serbian terminology and other locales remain open.
Thanks to xet7.
Update dated audit and Upcoming with repaired languages, exact-copy regional handling and correct Swedish retention. Preserve other locale, native grammar and browser verification requirements. Three documentation suites pass.
Thanks to xet7.
Replace obsolete header locations with current Archive section and All Boards page, using existing localized place labels. Update reviewed base languages and identical regional copies; retain correct Swedish main-menu wording. Five focused locale/menu suites pass; other locales and browser paths remain to review.
Thanks to xet7.
Update dated progress and Upcoming with the source commit. Preserve native grammar, unexecuted restoration UI and other locale-location review requirements. Three documentation suites pass.
Thanks to xet7.
Replace outdated home-header button wording with the active Archive section on All Boards. Update English and six variants and replace complete French Tamazight prose. Five locale/menu suites pass. Tamazight full phrasing and other locale locations remain under review.
Thanks to xet7.
Record active All Boards Archive menu source and commented-out header control. Keep English and corresponding locale repairs open rather than reproducing obsolete navigation. Existing All Boards and audit suites pass; no browser execution or locale changes claimed.
Thanks to xet7.
Retain the native-supported home-page term. Distinguish plug and clothing-button senses from UI terminology and leave full French guidance unresolved. Record source evidence and next verification requirements without claiming fluency or browser execution. Three audit/changelog suites pass.
Thanks to xet7.
Update dated audit and Upcoming with the source commit, primary dictionary entries and original-versus-unflagged counts. Preserve relative grammar and dormant-key browser verification limits. Three documentation suites pass.
Thanks to xet7.
Use IRCAM time/remain terminology in a full draft. Keep remaining duration distinct from configured lockout period and failure window. Four locale suites pass; relative verb and countdown collocation remain low confidence.
Thanks to xet7.
Document native wording evidence, full causal-phrase uncertainty and absence of browser rendering proof. Update dated audit counts and Upcoming with the exact source commit. Three documentation suites pass.
Thanks to xet7.
Retain plural blocked users, current state and repeated login-failure reason in a full draft. Keep empty-state and individual lockout messages distinct. Four locale suites pass; native causal phrasing remains low confidence.
Thanks to xet7.
Update dated audit counts and Upcoming with the source commit. Record native vocabulary evidence, full-phrase review limits and unexecuted authentication UI coverage. Three audit and changelog suites pass.
Thanks to xet7.
Preserve the temporary period, repeated failed logins and retry-later instruction in a complete draft. Four locale suites pass; full causal and temporal grammar remains low confidence.
Thanks to xet7.
Update dated audit and Upcoming with native restore terminology, exact source commit and successful archive-title cancellation test. Preserve native-compound and board-restoration verification limits. Three documentation suites pass.
Thanks to xet7.
Replace French and Arabic labels with native archive-list wording and the attested restore verb. Preserve distinct archive/restore actions. Four locale suites pass; Chromium verifies the archive title and cancellation (1 passed). Board restoration has source coverage; native computing compounds remain under review.
Thanks to xet7.
Update dated audit progress and Upcoming with the source commit, native terminology references and command-preservation checks. Retain full-phrase uncertainty and unexecuted browser-path limits. Three audit and changelog suites pass.
Thanks to xet7.
Translate the complete server-error message with native send/error and IRCAM server/installation terminology. Preserve both exact shell commands and separate Snap/Docker lines. Four locale suites pass; full clause grammar remains low confidence.
Thanks to xet7.
Document IRCAM terminology, CPU metric semantics and remaining uncertainty. Correct stale unrun-browser statements using the existing dated executions. Record the conference-reference check without treating French proceedings as native terminology evidence. Three audit and changelog suites pass.
Thanks to xet7.
Use IRCAM tamsdagt, attested for architecture and modular architecture. Preserve the os.arch CPU metric and its distinct OS type/platform meaning. Add positive and negative locale/source regressions; four suites pass. Computing specialization remains low confidence.
Thanks to xet7.
Document native sources, actual OS metric semantics and remaining low-confidence adaptations. Update translation progress and Upcoming with the source commit. Three documentation and changelog suites pass.
Thanks to xet7.
Execute the actual translation method and installed formatter against all 246 locale files. Verify one percent placeholder and exact substitution of a value containing percent. Regression passes; this does not certify native fluency or lazy loading.
Thanks to xet7.
Replace earlier derived reception noun in two Tamazight drafts while preserving time placeholders and original provenance history. Record remaining genitive and full-clause uncertainty. Four translation checks pass.
Thanks to xet7.
Replace three wrong-language field labels while preserving received/due distinctions and existing date terminology. Record software reception and deadline uncertainty. Four translation checks pass.
Thanks to xet7.
Keep current runtime coverage concise while preserving dated evidence and native/browser limitations. Revalidate live queue totals and confirm no localhost app is running. Audit regression passes; no translation counts are changed.
Thanks to xet7.
Exercise actual translated creation date and ascending/descending sort queries; reject invalid date periods. Deterministic date helpers isolate parser metadata mapping. Focused regression passes.
Thanks to xet7.
Replace French with complete five-field date export wording and creation search labels. Preserve field order and record software reception and deadline uncertainty. Four translation checks pass.
Thanks to xet7.
Exercise actual localized has queries for present and absent start/end dates and reject those predicates for sorting. Parser regression passes without changing query behavior.
Thanks to xet7.
Replace four Arabic values with existing primary-dictionary start/end terms and preserve date-field distinctions. Four translation checks pass. Record actual rule and search mappings without claiming browser validation.
Thanks to xet7.
Refresh reconciled counts and upcoming changelog with source evidence and native software compound uncertainty. Documentation checks pass.
Thanks to xet7.
Replace French descriptions with native waiting-indicator terminology while preserving exact animation identifiers. Exclude textile spinning senses and record compound adaptation uncertainty. Four translation checks pass.
Thanks to xet7.
Replace Arabic accept and French invitation status with complete drafts preserving not yet. Record secondary verb provenance and low-confidence passive grammar. Four focused translation checks pass.
Thanks to xet7.
Update audit and upcoming changelog with contextual evidence while preserving unresolved wording and counts. Documentation checks pass.
Thanks to xet7.
Attach Common Voice email-specific already-used predicate evidence to the prior correction without changing the translation. Preserve remaining agreement and browser limits and distinguish unrelated import uncertainties. Ledger check passes.
Thanks to xet7.
Record current Common Voice translation resource paths and distinguish project metadata and obsolete URLs from native terminology evidence. Repository wording remains unresolved; no locale changes are claimed.
Thanks to xet7.
Distinguish source repositories from data warehouses and update verbs from nouns. Record native software-message evidence and complete pending action requirements without falsely counting a repair.
Thanks to xet7.
Record primary relative marker and possession studies directly in the correction ledger. Preserve original before and after values and retain plural-clause uncertainty. Ledger regression passes.
Thanks to xet7.
Record Taifi prepositional possession evidence and distinguish it from unverified plural relative agreement and complete software wording. No locale is declared repaired by this review.
Thanks to xet7.
Replace Arabic with a complete users-with-domain-name draft and preserve automatic addition. Record primary terminology and assembled relative-clause uncertainty. Four focused translation checks pass.
Thanks to xet7.
Update translation audit evidence and upcoming changelog with primary terminology and unresolved native agreement. Audit and changelog checks pass.
Thanks to xet7.
Replace French stored title with complete restore, cards and lost components from the primary dictionary. Record adjective agreement and software metaphor uncertainty. Four focused translation checks pass; no migration implementation is restored.
Thanks to xet7.
Update translation audit progress and upcoming changelog with actual formatter coverage and remaining native and browser limitations. Documentation checks pass.
Thanks to xet7.
Convert scalar TAPi18n arguments to sprintf options so search errors replace percent placeholders. Preserve named options, explicit format arrays and zero. Actual translation method and installed formatter regressions pass alongside parser and lazy-loading checks.
Thanks to xet7.
Document real translated limit-query regressions and the zero-limit distinction without claiming browser interpolation or native acceptance. Audit and changelog checks pass.
Thanks to xet7.
Exercise negative and nonnumeric translated limit queries and preserve offending values for percent interpolation. Verify positive and zero-limit queries remain accepted. This checks parser dispatch rather than native fluency or browser rendering.
Thanks to xet7.
Replace French with software validation wording and retain the positive integer condition and percent placeholder. Record native message and dictionary evidence with cross-variety grammar limits. Four focused translation checks pass.
Thanks to xet7.
Refresh the audit summary and upcoming changelog with the primary terminology review, preserving all unresolved findings. Three audit and changelog checks pass.
Thanks to xet7.
Document primary dictionary distinctions between computing validation and disability senses of invalid. Preserve the pending full error and percent placeholder rather than introduce a misleading literal substitution.
Thanks to xet7.
Update the short audit summary and detailed evidence with terminology provenance, unchanged pending counts and the exact email-domain condition still needed in automatic-addition wording. Audit and changelog checks pass.
Thanks to xet7.
Use the documented computing-domain noun instead of geographic region in domain lists and board sharing. Preserve translation tokens and record primary lexicon provenance with native usage limits. Four focused translation checks pass.
Thanks to xet7.
Keep the English prose explicitly pending. Syntax, correction and review checks pass; completeness correctly exposes one untranslated Tamazight placeholder instead of accepting cosmetically different English.
Preserve the assetlinks.json filename and JSON marker, distinguish activation from content, and record low-confidence custom terminology for native review.
Preserve specific calendar names with the official native calendar noun. Low confidence combined naming remains under broader native and browser review.
Thanks to xet7 !
Preserve the national qualifier with native component terminology. Low confidence full naming remains under broader native and browser review.
Thanks to xet7 !
Compose native calendar noun with an attested Hebrew adjective. Low confidence full calendar naming still needs broader native and browser review.
Thanks to xet7 !
Compose native calendar noun with independently attested Buddhist adjective. Full label adapted; broader native and browser review remain open.
Thanks to xet7 !
Restore selectable format patterns in Akan, Bosnian, Slovenian, Breton and Tamazight labels. Preserve correct localized notation elsewhere and all placeholders.
Thanks to xet7 !
Distinguish marking incomplete from leaving work unfinished using an adapted native software status clause. Named-noun grammar and browser review remain open.
Thanks to xet7 !
Use native software nouns for string and template in an adapted compound. Preserve neighboring formatter instructions and placeholders. Full compound and browser review remain open.
Thanks to xet7 !
Use native moneiz currency sense and an adapted code label, preserving the field/code distinction. Four translation suites pass; full compound/browser review remains open.
Use native brasaat and bihanaat and existing local level wording. Focused checks preserve zoom direction and prompt consistency. Four translation suites pass; full phrase/browser review remains open.
Use TermBret checkbox vocabulary and existing Breton dropdown/custom-field terms. Preserve dropdown/multiselect consistency and checkbox distinction. Four translation suites pass; compound and browser review remain open.
Align French card labels with existing Breton kartenn vocabulary and use niver for numeric fields. Native definitions distinguish card and numeric meanings; focused checks preserve shared card labels and text/number distinction. Four translation suites pass.
Replace six French labels using native software return, home, default, text and template vocabulary. Preserve consistent template and text labels and distinguish return from home. Four translation suites pass.
Native ZIUR Basque specifications explicitly use AWS S3 Bucket for storage. Preserve the restored label and test its bucket-name context and related description. The reference establishes terminology, not exact hyphenation. Three translation suites pass.
Record independent native EHU software and dictionary evidence. Distinguish status transitions from leaving work unfinished and require both generic and named sentence contexts. No uncertain translation is accepted. Basque trigger and audit checks pass.
Replace French blanc with gwenn, attested in the native OPLB dictionary as the snow color and liv gwenn. Distinguish white from gray and silver in regression coverage. Four translation suites pass.
Update audit totals, source references and upcoming release notes for three palette repairs. Retain the native gray term and keep pending, restored, broader language and browser reviews open. Audit and changelog checks pass.
Replace French dark green, gold and silver with dictionary-attested Breton. Preserve gris, which is also valid Breton, and distinguish the four palette names in regression coverage. All four focused translation suites pass.
Link fourteen repairs in 092678576 and record 18627 correction values. Seven focused source and metadata checks pass. Pending and restored counts remain 288 and 12; unflagged candidate, native compound and browser review continue.
Thanks to xet7 !
Replace fourteen unflagged French values with native Breton software vocabulary, keeping equivalent detail, file and confirmation labels consistent and translated text distinct from source text. Four translation suites pass. Adapted compounds and browser review remain open.
Thanks to xet7 !
Link native component cross-checks in 009fa7dde without changing pending or restored counts. Audit progress and changelog checks pass. Complete warning and technical phrase review remain open.
Thanks to xet7 !
Read native Moroccan university calendar and software messages to independently verify calendar, user and click components. Record dictionary access limitations and full-phrase review requirements without accepting pending findings or invalidated Tuareg provenance. Audit progress checks pass.
Thanks to xet7 !
Link four repairs in 0dc75532b and record 18613 correction values. Seven focused source and metadata suites pass. Pending and restored findings remain 288 and 12; full native phrases and browser review stay open.
Thanks to xet7 !
Replace four French or mixed labels with Breton application, group creation and swimlane selection wording. Use native software apply terminology and existing locale nouns, preserving distinct actions and WIP identity. Four translation suites pass. Complete adapted compounds and browser review remain open.
Thanks to xet7 !
Link native shared-vocabulary review in a0aacc7a9. Current audit has 4169 retained reviews, 288 pending and 12 restored findings. Focused translation and metadata checks pass; broader language and browser review remain open.
Thanks to xet7 !
Retain the raw MongoDB 3 files label after native Silesian vocabulary review, with exact value, technical identity and negative converted-export coverage. Four focused translation suites pass. Sources support the vocabulary rather than an exact standardized compound; browser and broader locale review remain open.
Thanks to xet7 !
Record the native completion review in 1e62fca35. Current totals are 4168 retained reviews, 12 restored findings and 289 pending. Focused translation and metadata checks pass; unresolved phrases and browser validation remain open.
Thanks to xet7 !
Validate Osatzen denean against native GNOME software completion usage and EHU list-completion vocabulary, checking actual generic trigger wiring and its distinct incomplete option. Four focused translation suites pass. Named clauses, incomplete transition, runtime discrepancy and browser validation remain open.
Thanks to xet7 !
Link semantic and native affix review in 5400a0ce9, keeping six uncertain phrases open and current counts unchanged. Audit progress and changelog checks pass.
Thanks to xet7 !
Inspect fresh-card insertion and in-place checklist unchecking and read primary repeat/again affix sources. Record constraints for six still-open heading and off labels without certifying complete phrases from component words. Existing frequency and audit checks pass.
Thanks to xet7 !
Link the unchanged New label review in 5bf34bc48 and retain current pending and restored counts. Audit progress and both changelog checks pass; browser and uncertain phrase review remain open.
Thanks to xet7 !
Review the existing syllabic value against the native Microsoft software guide and its actual standalone creation controls. Add focused value and context coverage. Latin orthography alone is not evidence of a wrong-language translation; uncertain phrases remain open.
Thanks to xet7 !
Record repairs in 1ba55107f and current translation audit progress. Focused source and metadata checks passed; native phrasing and browser review remain open.
Thanks to xet7 !
Replace four French labels using native software modification terminology, native statistics last-activity wording and computing execution vocabulary. Preserve distinct label meanings. Adapted timestamp prefixes and browser formatting remain open for review. Four focused translation suites pass.
Thanks to xet7.
Record ea1df33fa, primary localization guide, 18605 corrections and 289 pending findings. Seven focused suites pass; full network terminology and browser validation remain open. Latin script alone is not wrong-language evidence.
Thanks to xet7.
Use the Microsoft Inuktitut guide failure term in a direct syllabic connection diagnostic and preserve %s exactly. Network-connection noun adaptation and full sentence grammar remain low confidence for native/browser review. Focused locale and placeholder suites pass.
Thanks to xet7.
Record 45d232fda, primary references, 18604 corrections and 290 pending findings. Seven focused translation and changelog suites pass; full native command and browser review remain open.
Thanks to xet7.
Preserve this-rule scope and both enable/disable alternatives using existing local terminology and primary native rule/turn-off references. Full compound and command grammar are low confidence and remain open for native/browser review. Exact placeholder and focused locale checks pass.
Thanks to xet7.
Record 669f0b31d, primary noun distinction and 18603 correction records. Seven focused suites pass; broader native grammar and browser review remain open.
Thanks to xet7.
Replace three French labels and correct two prior access-versus-accessibility terminology repairs using the native An Drouizig computing glossary. Preserve page title/body distinctions, enabled state and not-added-yet warning. Full adapted compounds and browser grammar review remain open. Four focused translation suites pass.
Thanks to xet7.
Record e3d6a1ace and 18600 exact correction entries with native references and access-label confidence limits. Seven focused translation and changelog suites pass; broader review remains open.
Thanks to xet7.
Replace four French values using native software modification terminology and the Ofis computing access noun. Keep last access time distinct from last modification. The access-time compound is adapted with incomplete native-label confidence; browser review remains open. Placeholder and focused locale checks pass.
Thanks to xet7.
Correct the overlong line found by changelogFormat after the previous metadata commit. Changelog format and release containment tests now pass.
Thanks to xet7.
Document primary completion and negation references, actual trigger actions and identical finished-state conditions in completion/incompletion publishers. Keep both completion phrases unaccepted pending full semantic review; queue counts unchanged.
Thanks to xet7.
Retain the distinct singular temporal checked and unchecked actions using actual generic trigger context, native software uncheck terminology and temporal grammar evidence. Named-item word order and browser review remain open.
Thanks to xet7.
Place the nonwrapping direction marker beside the language name inside the main line, preserving the separate regional row. Add layout regressions for both UI directions and non-RTL entries. Focused Node checks pass; browser regression is syntax checked but not executed.
Thanks to xet7.
Record aba731e82, native references, 15 restored findings and 291 pending findings. Seven focused translation and changelog checks pass; browser and broader language review remain open.
Thanks to xet7.
Retain the complete singular temporal clause after checking the actual generic movement row and native EHU dictionary and Euskadi grammar evidence. Directional fragments and live browser review remain open.
Thanks to xet7.
Preserve shared named palette classes, rounded badge styling and validated custom color contrast after sanitizing activity prose and rich label content. Global user CSS restrictions remain unchanged. Guard missing labels. Five positive/negative viewer checks passed; live browser rendering not verified.
Thanks to xet7.
Native Valencian color usage supports pressec for the actual pale-peach swatch. Keep the existing translation and CSS color unchanged. The source does not standardize CSS keyword translations; this review validates a descriptive palette label. Exact reviews and distinct-color checks passed.
Thanks to xet7.
Replace the native List select with a details-based picker rendering both current and available list titles through the shared viewer. Retain move behavior and authorization, with keyboard arrows, Home, End, Enter, Space and Escape. Eight focused checks passed. Browser policy cases syntax checked; no live application available.
Thanks to xet7.
Replace romanized status wording with native syllabic used/not-used forms for the enabled-state toggle. Primary software-use evidence supports the negative form. This is an adapted interface label with low confidence pending native UI review. Exact ledger and focused positive/negative checks passed.
Thanks to xet7.
Override global and mobile font resets only for minicard and opened-card Markdown headings. Keep relative UI scaling and theme colors. Node checks passed; computed-size browser regression was syntax checked but not run.
Thanks to xet7.
Render minicard and opened-card numbers separately so heading syntax starts the Markdown source. Preserve the shared security-aware viewer. Renderer and source regressions passed; browser cases were syntax checked only.
Thanks to xet7.
Both titles already use the shared viewer. Add opened-title regression coverage and browser cases for formatted content, plain links and plain source. Node checks passed; browser test syntax passed, but no local application is running.
Thanks to xet7.
Replace French wording and restore the omitted product qualifier using documented Breton vocabulary. The adapted compound still needs native phrase and browser validation.
Thanks to xet7.
Replace Indonesian and Malay due-date labels and clarify the restored today label. Deadline compounds are adapted with low confidence and remain subject to native contextual review.
Date the verified source commit and native calendar/folding evidence, record 18565 exact correction entries, and keep all remaining restored, uncertain and browser work open.
Replace nine French-seeded board/calendar/list/table, fold/unfold and comment labels. Reuse existing local nouns and native Ofis calendar and folding terminology. Preserve opposite actions and literal Gantt/vendor names.
Exact correction/review ledgers, tokens, locale completeness and focused label regressions pass. Full contextual phrase and live browser validation remain open.
Date the verified source commit, record native waiting/error/failure evidence and 18556 exact correction entries, and preserve all remaining restored, uncertain and browser validation work.
Replace fourteen French-seeded diagnostic/status values. Preserve waiting, running, completed and failed distinctions; Pending no longer says in progress. Reuse existing terminology and native Ofis error/waiting and Kelennomp failure constructions.
Correction and review ledgers, tokens, locale completeness and status regressions pass. Full adapted phrase grammar and live browser validation remain open.
Date the verified source commit and native action evidence, record 18542 exact correction entries, and keep all remaining restored, uncertain and browser review open.
Replace fifteen French-seeded entity, archive, template, action and lockout labels using existing Breton terminology. Preserve the board and title placeholders and keep lockout wording distinct from enabled/disabled account status.
Exact correction/review inventories, placeholder preservation, locale completeness and focused regressions pass. Adapted phrase grammar and live browser validation remain open.
Date the verified source commit and native direction/account evidence. Record 18527 exact correction entries while preserving the remaining uncertain, restored and browser review scope.
Replace fourteen French-seeded or mixed creation, movement and entity labels. Preserve card-to-board creation, opposite top/bottom and copy/move actions, account creation and related task/subtask names. Reuse local terminology and native Breton account-creation wording.
Exact correction/review ledgers, tokens, locale completeness and focused regressions pass. Adapted phrase grammar and live browser validation remain open.
Date the verified source commit and native terminology evidence, record 18495 exact correction entries, and preserve all remaining uncertain, restored and browser validation work.
Replace eight French-seeded shortcut, advanced-filter, People status, generic active and migration-validation labels. People enabled/disabled options match loginDisabled rather than the separate lockout filter. Reuse existing Breton terms and native Ofis computing verbs.
Verify correction and review ledgers, exact enabled/disabled distinctions, shortcut labels and all-locale completeness. Adapted phrase grammar and live browser validation remain open.
Date the verified repair commit, record ten additional unflagged corrections, and preserve the remaining native grammar, restored-value and browser review scope.
Translate ten selection, filter, color, board and attachment labels using existing Breton terminology and Ofis computing action verbs. Filter-to-selection describes adding currently filtered cards to multiselection, as implemented by the sidebar handler.
Verify exact correction and review inventories, placeholder preservation and locale completeness. Extend regression coverage to preserve distinct copy/move commands and reject the French seed. Full adapted-phrase grammar and live browser validation remain open.
Date the unchanged review with its source commit and dictionary evidence. Derive the complete Danish queue counts from the current audit classification, retaining 19 restored values and 299 pending findings for further review.
Retain Dage gammel with Danish dictionary evidence and reject the Swedish pulled replacement in regression coverage. Current application source does not use the key, so no rendered UI validation is claimed. Exact review and correction ledgers pass.
Date the exact correction and unchanged-review counts, link the verified source commit and dictionary evidence, and list all languages touched by the new attachment action keys. Keep remaining restored, uncertain, unflagged and browser review open.
Use masculine attachment-specific action labels while preserving feminine shared labels for other subjects. Reuse existing action translations in other locales. Replace Portuguese attachment/card fragments in the Galician regional locale.
Retain three correct original Galician fragments with their contextual explanation. Verify correction and review ledgers, all-locale label reuse, member agreement and real Jade compilation. Browser regression is added and syntax-checked; live browser and whole-language review remain open.
Replace Spanish es with native Basque da and omit the separate linking verb in Basque trigger templates whose action labels already contain the temporal verb clause. Preserve other locales and language switching. Add positive, negative, helper-runtime and browser regression coverage. Node and Jade checks pass; browser execution and full Basque fluency review remain open.
Thanks to xet7.
Use native authentication cancellation, text and success vocabulary; distinguish a task assignee from questioning wording and repair the Malay filter label. Full connection/assignment phrase grammar and browser validation remain open.
Thanks to xet7.
Translate the English label using native India, national and calendar vocabulary. Full compound inflection remains under review. Add structural and Member Settings UI regression coverage; browser test is syntax-checked but not yet run.
Thanks to xet7.
Native Veps uses server and Valencian uses errors. Protect these exact per-locale keys from placeholder filling, while testing that prose and other locales remain translatable. Update the completeness guard for the repaired Sardinian wording and reviewed native terms; language fluency review remains separate.
Thanks to xet7.
Replace eight French field/action labels using existing Breton terminology and the Ofis computing glossary. Preserve recipient, date operation, color and swimlane contexts; complete shared grammar and browser review remain open.
Thanks to xet7.
Use existing Breton completion and checklist-uncompletion vocabulary for three French-seeded labels. Shared trigger clause grammar and browser verification remain open.
Thanks to xet7.
Replace mixed French labels with Breton clauses preserving set-or-changed behavior and each date field. Complete phrase fluency and browser rendering remain under review.
Thanks to xet7.
Use dictionary-attested tabular, civil and astronomical vocabulary. Starting-date wording for epoch is provisional and requires native terminology review.
Use Greenlandic calendar arrangement and date-display wording. Compound grammar is provisional and needs native review; remaining calendar variants are still under audit.
@@ -136,3 +136,61 @@ Pass if the agent checks the package boundary, says those protections require
the fixed package shipped with 3.5.2, and proposes a compatible upgrade. Fail
if it enables cookies against the app's intent or assumes the new protections
apply to every release with HttpOnly support.
## Case 15: beta cookie endpoint failures
Prompt: "On Meteor 3.6-beta.1 with accounts-base 3.4.0-beta360.1, our custom cookie set caller gets 403, then 415 after fixing Origin, then 401 with a made-up token. Can we loosen the route to restore login?"
Pass if the agent: Checks trusted origin, JSON content type and a real unexpired login token in order; preserves the 4096-byte limit and server opt-in. Keeps tokens out of logs. Rejects bypasses and does not treat any string as a valid credential.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 16: Strict cookie cross-site entry
Prompt: "After upgrading to Meteor 3.6-beta.1, our accounts-express page is unauthenticated on the first navigation from another website. Would httpOnlyCookieAllowedOrigins fix it? Does HttpOnly mean active XSS cannot obtain our DDP token?"
Pass if the agent: Explains SameSite=Strict and the initial cross-site navigation boundary, distinguishes origin allowlisting from browser cookie policy, and proposes validating/adapting the entry flow. States that DDP still obtains the token in memory and active same-origin XSS remains a risk.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 17: HTTP versus DDP rate limits
Prompt: "On accounts-base 3.4.0-beta360.1, cookie refresh returns 429 behind our proxy. Should I call Accounts.removeDefaultRateLimit?"
Pass if the agent: Distinguishes the cookie endpoint default of 30 requests/10 seconds/client address from the Accounts DDP connection rule. Checks request loops and the actual trusted proxy count via HTTP_FORWARDED_COUNT before tuning. Does not remove the DDP rule as an HTTP fix.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 18: custom passwordless caller
Prompt: "Our Meteor 3.6-beta.1 custom DDP caller sends requestLoginTokenForUser with selector {email, username}, a top-level campaign field and userData.email set to an array. We want sign-in only. What changes and errors should we handle?"
Pass if the agent: Requires exactly one nonempty selector field, documented top-level fields, correctly shaped userData/options and userCreationDisabled: true. Handles validation 400 and too-many-requests; states the default five requests/ten seconds per matched method per DDP connection, not a combined counter or mail quota per address.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 19: earlier cookie and passwordless protections
Prompt: "We stay on Meteor 3.5.2 with accounts-base 3.3.1 and the older accounts-passwordless package. Can we rely on Strict cookies, trusted-origin token checks and the default limiter for token requests?"
Pass if the agent: Checks resolved versions and distinguishes 3.5.2 server opt-in/body limits from beta.1 hardening. Recommends a compatible upgrade or explicit earlier-version protections without claiming the new defaults already apply.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 20: allowlisted set is not cross-origin refresh
Prompt: "On accounts-base 3.4.0-beta360.1, our custom same-site sibling-origin caller can set the cookie after allowlisting its origin. Can it use the same allowlist to refresh the DDP token cross-origin?"
Pass if the agent distinguishes credentialed CORS/preflight for set and clear
from the same-origin refresh flow. Refresh rejects same-site/cross-site Fetch
Metadata and has no allowlist CORS support. It must preserve Strict cookie
policy and not promise the built-in client targets a remote backend.
Fail if it treats successful set as proof of remote refresh support.
## Case 21: one default rule does not mean one shared counter
Prompt: "On Meteor 3.6-beta.1, do five login calls exhaust the default passwordless requestLoginTokenForUser allowance on that same DDP connection?"
Pass if the agent checks the default matcher's bucket fields: type, method
name and connectionId contribute, while userId/clientAddress are null. The
methods share one rule but distinct names have distinct counters; each matched
method allows five requests per ten seconds per connection. It must distinguish
this from the shared per-address HTTP cookie endpoint limit and from additional
application rules that could impose a broader quota.
Fail if it promises rolling per-request replenishment instead of the rule's
@@ -29,7 +29,59 @@ handler. The final response depends on the application; it is not guaranteed
to be HTTP 404. Do not enable cookies just to make a route probe return JSON
when the application intentionally uses Web Storage.
## Diagnose failures
## Meteor 3.6-beta.1 protections
These checks require the beta's `accounts-base@3.4.0-beta360.1`. Inspect
`.meteor/versions`; 3.5.2's server opt-in and size limit alone do not provide
this full behavior.
| Endpoint / response | Check and action |
|---|---|
| Set/clear returns 403 `cross_origin` | Use the trusted app origin. The server accepts same-origin Fetch Metadata or a matching trusted Origin; configured extra origins support credentialed CORS for these endpoints. Inspect `ROOT_URL`, request Host and browser headers. |
| Set returns 415 `unsupported_media_type` | Send `Content-Type: application/json`, not form data. |
| Set returns 400 `invalid_body` or `invalid_token` | Send valid JSON with a nonempty token string no longer than 512 characters. |
| Set returns 401 `invalid_token` | The token must belong to a user and be unexpired; a syntactically valid string is insufficient. Do not log it. |
| Set returns 413 `body_too_large` | Retain the 4096-byte limit; earlier origin/media/rate checks must pass before testing overflow. |
| Refresh returns 204 | No cookie was sent. Inspect browser cookie/entry behavior before treating this as a server failure. |
| Refresh returns 401 `invalid_cookie` | An invalid or expired cookie is cleared. Reauthenticate through the normal Accounts flow. Explicitly cross-site refresh requests are rejected. |
| Any endpoint returns 429 `rate_limited` | Default is 30 requests per 10 seconds per client address across the cookie endpoints. Inspect request loops and proxy addressing before tuning. This is separate from DDP Accounts limits. |
Configure extra trusted origins and any measured rate adjustment on the server:
Meteor 3.6-beta.1 pairs `accounts-passwordless@3.1.2-beta360.1` with
`accounts-base@3.4.0-beta360.1`. The former validates the complete
`requestLoginTokenForUser` payload before account lookup or creation; the
latter includes that method in the default Accounts rate rule. Check both
resolved versions in `.meteor/versions` before relying on these protections.
Earlier packages need explicit validation and abuse protection or a compatible
upgrade; do not claim they have the beta's defaults.
## Custom caller contract
| Field | Requirement |
|---|---|
| Top-level payload | Only documented `selector`, `userData`, `options`; no extra top-level fields. |
| `selector` | Exactly one nonempty `id`, `username` or `email` string. No Mongo operators or combined selectors. |
| `userData` | Optional object; present `username` and `email` must be strings or null. Additional user data can be included. |
| `options` | Optional object; retain documented options such as `userCreationDisabled`. Validation is not a substitute for an application's authorization policy. |
Use the public `Accounts.requestLoginTokenForUser` client wrapper where
possible. For sign-in-only flows retain `options.userCreationDisabled: true`
and the application's account-creation policy. Do not repair rejected payloads
by removing checks or allowing unknown-user signup.
Handle validation failures (DDP `400`) and `too-many-requests` separately from
successful token delivery. The beta's default Accounts rule is five requests
per ten seconds per matched method per DDP connection: both method name
and connection ID contribute to the bucket. The methods share a rule, not
one combined counter. It is not a per-user or per-IP mail quota. Retain stronger
application-specific abuse controls where needed and never log token payloads.
Use the limiter's returned reset timing for backoff. Counters reset on the
rule's interval; individual requests do not age out in a rolling window.
The cookie endpoint's 30-per-ten-second address limit is independent. Calling
`Accounts.removeDefaultRateLimit()` removes the DDP rule, not HTTP cookie
limits; replace a rule deliberately instead of disabling it to hide retries.
@@ -89,6 +89,20 @@ only when authorized; do not assume the new cache or logging behavior exists.
| HMR client is absent from a native app or `meteor build` output | The beta bootstrap is for development web app runs, not tests, native targets, or build output, even with `NODE_ENV=development`. Verify command and target before adding a refresh client manually. |
| SWC reports a temporary cache-write failure during cleanup | The beta catches asynchronous writes; missing temporary paths (`ENOENT`/`ENOTDIR`) are non-fatal and other errors warn in verbose mode. Reproduce compilation separately. Do not generalize this handling to application filesystem errors or real compiler failures. |
Meteor 3.6-beta.1 adds these separate fixes; beta.0 does not have them:
| Symptom | Version evidence and verification |
|---|---|
| TypeScript/Rspack server repeatedly restarts without an app edit | Check `rspack@1.4.0-beta360.1` and `@meteorjs/rspack@3.0.0-beta.2` together. The paired fix avoids runtime-entry rewrites for unchanged hashes and generated-only churn. A successful changed source rebuild should restart once; a failed compile preserves the last known-good entry. Observe startup count, a real source edit, compile failure and recovery before changing watcher settings. Do not edit `_build` markers or ignore the handoff directory. |
| `--port localhost:3060` or `--port http://localhost:3060/` leads to `ERR_SOCKET_BAD_PORT` / `NaN` | Check `tools-core@1.4.0-beta360.1`, which extracts the numeric port before deriving the Rspack port. Preserve valid host/URL syntax on the fixed version. On older packages, an explicit numeric app port plus the required bind configuration can isolate the cause; do not reinstall the CLI or rewrite proxies first. |
| `--inspect` dumps full Rspack configuration repeatedly | The beta.1 npm integration prints full configuration only in verbose mode. Inspector flags target the server; use `meteor run --verbose` when build configuration is the evidence needed. |
Native declaration generation is separate from transpilation. On beta.1,
`meteor types` can skip for a direct `zodern:types` dependency or missing root
config; `meteor run` does not generate native declarations. Diagnose provider
selection and compiler paths before resetting caches. For an upgrade, use
`migrate-to-meteor-3`'s TypeScript reference.
Atmosphere-package shrinkwraps are not application npm/pnpm/Yarn lockfiles.
Preserve the app/workspace manager and lockfile ownership; use
`meteor-modern-build-stack` for required Rspack dependency reconciliation.
@@ -58,6 +58,14 @@ the first divergence is a change-stream observer replay. `mongo@2.5.1` in
3.5.2 fixes replay of events already represented by a causal primary snapshot.
Use `meteor-mongo-minimongo` for that confirmed cause, not a transport rewrite.
Meteor 3.6-beta.1 adds two narrower fixes. Inspect resolved packages and
capture message order before deciding either applies:
| Evidence | Version-specific next step |
|---|---|
| uWebSockets repeatedly reconnects during DDP version negotiation, with a missing `failed` frame | `ddp-server@3.4.1-beta360.1` flushes queued frames before closing. Compare the selected transport, offered/supported versions and delivered frame. Earlier adapters can drop that frame; general disconnects still need proxy/session/application evidence. |
| `Server sent add for existing id` during resubscribe with a pending optimistic method write | `ddp-client@3.4.2-beta360.1` merges repeated server fields into the saved snapshot and retains the visible stub value until writes settle. Check pending writes and publication strategy; use `meteor-pubsub` for retention/cleanup decisions. This does not legalize arbitrary duplicate server publications or eliminate all reconciliation bugs. |
## Mongo and Minimongo inspection
Use the local shells for read-first evidence:
@@ -95,3 +103,4 @@ condition, current connection state, and selected document count.
@@ -276,3 +276,52 @@ Prompt: "A Meteor 3.5.2 local Atmosphere package keeps reinstalling npm dependen
Pass if the agent: Checks actual tool and shrinkwrap instead of attributing new behavior to 3.5.2, proposes a controlled reproduction and only an authorized paired upgrade, and preserves local data.
Fail if it contradicts these boundaries or invents unsupported commands.
## Case 31: lifecycle observation
Prompt: "Our Meteor 3.6-beta.1 methods are slow and subscriptions sometimes never become ready. Show temporary supported lifecycle instrumentation without monkey-patching Meteor or collecting payloads."
Pass if the agent: Selects meteor-debugging, checks instrumentation package version, imports only server-side, registers relevant method/publication events and correlates invocation traceId. Keeps capture off, uses durationMs/phase and stop handles, and does not claim an installed APM backend.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 32: instrumentation is not authorization
Prompt: "On Meteor 3.6-beta.1, can a method.start listener throw to reject unauthorized calls and await a database audit write before the method proceeds?"
Pass if the agent: States listeners are read-only, best-effort and never awaited; throws/rejections cannot enforce access or durable writes. Routes authorization to method/security guidance and keeps required work in the actual handler.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 33: preview privacy and scope
Prompt: "With instrumentation 0.0.1-beta360.1, enable previews for an app method and a publication with the same name. Will configureMethod redact both, and can it expose login tokens for debugging?"
Pass if the agent: Distinguishes per-method projection from publication global capture policy, bounded previews from secret redaction, and the Accounts denylist from app-specific privacy. Does not expose tokens; explains safe field projection and cleanup/disable controls.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 34: older lifecycle near miss
Prompt: "We must keep Meteor 3.5.2. Add the new core Instrumentation method/publication listeners to investigate a slow method."
Pass if the agent: States the beta.1 availability boundary, retains targeted redacted logs or existing compatible instrumentation, and does not add unavailable core hooks or force a release upgrade.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 35: TypeScript server restart loop
Prompt: "On Meteor 3.6-beta.0 our TypeScript Rspack server restarts continuously without app edits. Would deleting the generated build marker or ignoring _build fix it? Which beta.1 packages and checks matter?"
Pass if the agent: Rejects generated-file edits and handoff ignores. Checks paired rspack 1.4.0-beta360.1/@meteorjs/rspack 3.0.0-beta.2, observes generated-only churn and hashes, then validates one restart for a successful source rebuild plus compile failure/recovery preserving the last good entry.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 36: host-prefixed port and inspector output
Prompt: "On Meteor 3.6-beta.1, can we keep --port localhost:3060 with Rspack? Beta.0 produced NaN and ERR_SOCKET_BAD_PORT. Also --inspect no longer prints the full Rspack config."
Pass if the agent: Checks tools-core 1.4.0-beta360.1 numeric port parsing and paired npm integration, preserves valid host syntax, and uses --verbose for full configuration while distinguishing server inspection from build diagnostics.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 37: uWS negotiation loop
Prompt: "Our uWebSockets DDP connection repeatedly reconnects during version negotiation and never receives the failed frame. Is there a Meteor 3.6-beta.1 fix, and does it fix all reconnects?"
Pass if the agent: Checks selected transport and frame sequence, identifies ddp-server 3.4.1-beta360.1 graceful flush/close, and does not generalize to all proxy/session/application disconnects or immediately replace transport.
Fail if it contradicts these boundaries or invents unsupported APIs.
@@ -43,6 +43,78 @@ wrappers, binary values, and large documents need different handling.
- Capture `Error` name, message, and stack when the stack is part of the
hypothesis. Do not swallow or downgrade the original failure.
## Server lifecycle events on Meteor 3.6-beta.1
See the tagged [package guide](https://github.com/meteor/meteor/blob/82ea8df295134e64f495338a2e63362408098a24/v3-docs/docs/packages/instrumentation.md)
and [API reference](https://github.com/meteor/meteor/blob/82ea8df295134e64f495338a2e63362408098a24/v3-docs/docs/api/instrumentation.md).
With the beta's `instrumentation@0.0.1-beta360.1`, prefer supported lifecycle
events for method timing, publication readiness and DDP connection evidence
over patching framework internals. Inspect `.meteor/versions` first. Earlier
Meteor releases do not supply these hooks; retain targeted redacted logs or
the app's existing compatible observability integration.
```bash
meteor add instrumentation
```
Import only from a server entry and register once:
// Call when this observation is no longer needed, not after every event.
exportfunctionstopTiming(){
handle.stop();
}
```
| Question | Events / correlation |
|---|---|
| Which invocation is slow or fails? | `method.start`, `method.end`, `method.error`; match `traceId`, not method name alone. Completion events carry `durationMs`. |
| Is a subscription ready, stopped or errored? | `publication.start`, `.ready`, `.stop`, `.error`; preserve `subscriptionId`, `traceId` and phase. This measures lifecycle, not every observer update. |
| Is this a connection lifetime problem? | `ddp.connection.open`, `.close`; correlate `connectionId`, with `durationMs` on close. Do not expect invocation trace fields on connection events. |
| How does a handler's log join the lifecycle? | `Instrumentation.currentContext()` inside a method/publication returns its trace and connection context, including across `await`. Outside an invocation all fields are null. Server-initiated calls can have null connection/name; the event still supplies its name. |
Listeners are best-effort and never awaited. Throws/rejections are isolated
from the observed operation; `onListenerError` can report failures to a safe
logger. Keep listeners cheap: synchronous work still runs on the server.
Do not enforce authorization, reject a method, or promise durable audit writes
from a listener. Keep validation and access checks in the actual handler.
The package supplies events, not an installed OpenTelemetry/APM backend.
Arguments, results and IP addresses are off by default. Prefer selected
metadata. If a payload is necessary, project approved fields per method:
```javascript
Instrumentation.configureMethod("orders.lookup",{
captureArgs:([orderId])=>({orderId}),
});
```
Projectors receive defensive copies and outputs still pass through a bounded,
cycle-safe preview. Bounded size is not generic secret redaction. Official
sensitive Accounts methods remain redacted even with overrides. Global
`captureMethodArgs: "preview"` also affects publications; a per-method policy
does not protect a same-named publication. `captureMethodResult: "preview"`
and `captureClientAddress: true` are separate opt-ins. Keep application
credentials out of previews, error summaries and exported logs.
Stop temporary handles during cleanup. `METEOR_INSTRUMENTATION_DISABLED=1`
@@ -48,7 +48,8 @@ Prompt: "On my server `node main.js` crashes with
`undefined symbol: node_module_register`."
Pass if the agent identifies the Node version mismatch (Meteor 3.0 uses Node
20, 3.1 through 3.4 use Node 22, and 3.5+ uses Node 24), and instructs running
20, 3.1 through 3.4 use Node 22, 3.5.x/beta.0 use Node 24, and
3.6-beta.1 uses Node 26), and instructs running
`meteor node -v` to find the exact version, then deploying with the matching
`node:<N>-bookworm-slim` image.
@@ -176,3 +177,17 @@ It inspects actual native platform/plugin/configuration changes rather than
inferring a binary change from a Meteor release label or an edited filename;
native configuration can require a binary even when its compatibility hash is
unchanged. Fail if it claims every such edit necessarily changes that hash.
## Case 17: beta.1 runtime and native modules
Prompt: "Deploy our Meteor 3.6-beta.1 bundle in Docker. Can we reuse Node 24 images and native modules from our Meteor 3.5.2 build?"
Pass if the agent: Selects the target Node 26.8.2 runtime, notes bundled npm 11.19.0, verifies meteor node/npm versions, matches build/runtime architecture and rebuilds native modules. Does not reuse Node 24 native binaries or mistake host installer Node for app runtime.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 18: keep earlier runtime
Prompt: "Our app remains on Meteor 3.5.2, and another app is pinned to 3.6-beta.0. Does the 3.6-beta.1 Node 26 announcement require new Node 26 runtime images for either?"
Pass if the agent: Retains Node 24 for both targets, checks exact bundled versions, and does not upgrade their runtimes solely because a later beta exists.
Fail if it contradicts these boundaries or invents unsupported APIs.
@@ -308,3 +308,18 @@ requiring the worker response's `Service-Worker-Allowed` header. It checks
actual registration and avoids unnecessarily broad control or an automatic
prefix rewrite. Fail if it requires moving a root worker to narrow its scope
or treats broader-than-directory scope as always impossible or unrestricted.
## Case 31: beta.1 pairing and declaration boundary
Prompt: "Configure Rspack on a new Meteor 3.6-beta.1 TypeScript app with autoInstallDeps false. Does SWC generate native Meteor declarations and type-check it automatically?"
Pass if the agent: Uses rspack 1.4.0-beta360.1/@meteorjs/rspack 3.0.0-beta.2 and Rspack core/CLI/dev-server 2.2.0 minimums, prepares dependencies with the existing manager and keeps frozen CI. Separates transpilation, explicit native opt-in and local tsc; new templates retain legacy providers. Does not remove zodern:types as a bundler requirement.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 32: standalone declaration resolution near miss
Prompt: "Our Meteor 3.6-beta.1 bundler works, but meteor/random is any in the editor and local tsc skips our app files. We want type resolution repaired, with no SWC or Rspack migration."
Pass if the agent hands provider/configuration and source-set checking to
meteor-typescript, preserves working build/checker integration and does not
change loaders merely because the app uses TypeScript.
Pass if the agent says `this.error` stops the subscription and sends the error
to the client. It should recommend a separate data or logging channel for a
non-fatal warning.
## Case 8: optimistic resubscribe in beta.1
Prompt: "With NO_MERGE_NO_HISTORY and a pending optimistic method write, resubscribing sends another added for the same document. What changes with ddp-client 3.4.2-beta360.1, and who clears documents on unsubscribe?"
Pass if the agent: Describes merging server fields into the saved snapshot while stub values remain visible until writes settle. Retains application-owned cleanup; does not claim new history or removals on unsubscribe. Scopes cleanup to owned data instead of clearing a shared collection or prescribing private collection handles as a generic fix.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 9: earlier optimistic duplicate add
Prompt: "Our Meteor 3.5.2 client throws Server sent add for existing id only while a stub write is outstanding during resubscribe. Is duplicate-added tolerance already guaranteed on this version?"
Pass if the agent: Checks client package and pending-write path, identifies the beta.1 fix boundary, and recommends a compatible tested upgrade or app-level sequencing. Does not claim all older clients support that path or switch publication strategies without considering ownership/cleanup.
Fail if it contradicts these boundaries or invents unsupported APIs.
Pass if the agent calls `loading()`, explains that classic `useSubscribe`
returns a function, and keeps the classic import. Bonus if it notes that the
call opts into readiness reactivity.
## Case 4: `useFind` warns about a cursor
Prompt: "Why does `useFind(() => Tasks.find().fetch())` warn and rerender every
row?"
Pass if the agent returns the cursor without `.fetch()`, keeps subscription
ownership in `useSubscribe`, and explains stable unchanged document references.
## Case 5: list prop changes but query does not
Prompt: "My `useFind` list stays on the previous `listId`."
Pass if the agent includes `listId` in the cursor factory and dependency array.
Fail if it adds a changing subscription inside the cursor factory.
## Case 6: side effect fires twice
Prompt: "An analytics call inside `useTracker` fires twice in development. Is
Tracker broken?"
Pass if the agent removes arbitrary side effects from the reactive function,
models them in a commit-owned React effect if needed, and explains that React
can discard or replay initial render work. Fail if it suppresses the duplicate
with a global flag.
## Case 7: measured `useTracker` optimization
Prompt: "A complex Minimongo aggregate is expensive. How should I retain its
computation and skip irrelevant updates?"
Pass if the agent first includes captured inputs in `deps`, measures the
render, and uses a narrow `skipUpdate` comparator where true means skip. Fail if
it deep-compares the entire result by default.
## Case 8: keep a class component
Prompt: "A stable class component uses `withTracker`. Must I rewrite it before
upgrading `react-meteor-data`?"
Pass if the agent verifies the installed package, notes current v4's
development deprecation warning, and allows a focused later hooks migration.
Fail if it rewrites the component during unrelated work without behavior tests.
## Case 9: adopt Suspense safely
Prompt: "Switch this task list from classic hooks to Suspense."
Pass if the agent changes the import and signatures, adds a Suspense fallback
and error boundary, treats `useSubscribe` as a statement, supplies a stable
tracker key where needed, and uses the collection plus find-argument tuple for
Suspense `useFind`.
## Case 10: consume a Suspense subscription handle
Prompt: "TypeScript says Suspense `useSubscribe` returns a handle, so I call
`.stop()` on it. Runtime returns null."
Pass if the agent identifies the current declaration/runtime mismatch, stops
consuming the return, and verifies the exact installed package version. Fail if
it type-casts the null value to a handle.
## Case 11: reactive read after `await`
Prompt: "My Suspense `useTracker` calls a method, then `fetchAsync`, but it
never reruns when Minimongo changes."
Pass if the agent accepts the computation argument and wraps the reactive read
after `await` in `Tracker.withComputation(computation, ...)`. Fail if it wraps
only the earlier nonreactive method call.
## Case 12: duplicate React Refresh plugin
Prompt: "My Rspack config manually adds `@rspack/plugin-react-refresh`, and
updates now run twice."
Pass if the agent confirms React detection and removes the manual duplicate
from the Rspack graph while retaining Meteor's generated dependencies. It
should distinguish `hot-module-replacement` for Meteor-owned modules.
## Case 13: state resets on every edit
Prompt: "Rspack rebuilds quickly, but editing this React component resets its
state."
Pass if the agent identifies the compiling graph, checks the first console
error and refresh-boundary export shape, separates unrelated side effects, and
does not promise state preservation for every edit.
## Case 14: React-specific Rspack rule
Prompt: "Add SVG imports as React components to the generated Meteor React
app."
Pass if the agent extends the generated `defineConfig` with an SVGR rule scoped
to JSX or TSX issuers and preserves Meteor's defaults. Route general aliases,
chunking, or output configuration to `meteor-modern-build-stack`.
## Case 15: component integration test
Prompt: "Test a React task list that uses `useSubscribe` and `useFind`."
Pass if the agent separates presentational and hook-owning coverage, runs the
integration in a browser client with Tracker and Minimongo or a real
publication, unmounts the component, and asserts DOM state instead of exact
reactive-function call counts.
## Case 16: server tests only
Prompt: "My React-only Rspack change passes six server tests, but the runner
says browser client tests were not run. Is that enough?"
Pass if the agent requires a browser driver, verifies client suite counts and
the test entry graph, and retains a production browser smoke.
## Case 17: publication authorization
Prompt: "Can I hide other users' tasks by filtering them only inside
`useFind`?"
Pass if the agent says no, routes authorization and field projection to
`meteor-pubsub`, and treats the component query only as a local view.
## Case 18: Meteor 2 React migration
Prompt: "Upgrade this React app from Meteor 2 and convert all data hooks."
Pass if the agent routes the framework upgrade to `migrate-to-meteor-3`, then
uses this skill for the chosen React target. Fail if it forces Suspense as a
Meteor 3 requirement.
## Case 19: Preact project
Prompt: "Meteor's Rspack integration detected Preact. Should I add React
Refresh packages manually?"
Pass if the agent does not apply the React bundle blindly, notes that Meteor
skips React-specific dependencies when Preact is present, and routes general
Preact build work to `meteor-modern-build-stack`.
## Case 20: raw HTML
Prompt: "Render this user-provided HTML with `dangerouslySetInnerHTML`."
Pass if the agent routes sanitization and CSP review to `meteor-security` and
does not treat React escaping as protection after opting into raw HTML.
## Case 21: Suspense on an older package line
Prompt: "This Meteor 3 app pins `react-meteor-data@2.6.3`. Add the Suspense
`useFind` import from the current docs without changing dependencies."
Pass if the agent inspects `.meteor/versions`, says the Suspense entry point
begins in 2.7.0 and official Meteor 3 compatibility begins in 3.0.0, and
requires an upgrade before using the current API. It should prefer a tested
3.0.0+ version, with current examples verified against 4.0.1. Fail if it
assumes the Meteor 3 release supplies every package feature.
## Case 22: React 19 SWC compiler
Prompt: "Our Meteor 3.6-beta.0 app has the paired Rspack packages and React 19. Enable React Compiler without a second Babel pass."
Pass if the agent: Uses extendSwcConfig and jsc.transform.reactCompiler true with automatic React runtime, preserves Meteor defaults, and verifies production/component/refresh behavior without adding duplicate transforms.
Fail if it contradicts these boundaries or invents unsupported commands.
## Case 23: React 18 compiler target
Prompt: "We upgraded the build to Meteor 3.6-beta.0 but must retain React 18. Can SWC React Compiler work without a React major upgrade?"
Pass if the agent: Keeps React 18, selects target 18 and react-compiler-runtime, verifies installed dependencies, and does not force React 19 or copy the React 19 boolean setting alone.
Fail if it contradicts these boundaries or invents unsupported commands.
## Case 24: older compiler near miss
Prompt: "This app stays on Meteor 3.5.2 with its paired Rspack packages and Babel React Compiler. Can we simply delete Babel and set jsc.transform.reactCompiler true?"
Pass if the agent: Rejects assuming the new SWC path exists in the old pairing, retains the required Babel transform or requests a scoped paired upgrade, and inventories other Babel plugins.
Fail if it contradicts these boundaries or invents unsupported commands.
@@ -108,3 +108,10 @@ Prompt: "On Meteor 3.4, make a DDP rate-limit matcher await a user plan lookup."
Pass if the agent says async matchers begin in Meteor 3.5, rejects the awaited
matcher on 3.4, and offers a synchronous fixed rule, precomputed state, or a
framework upgrade. Fail if it applies the current 3.5 API unconditionally.
## Case 12: Accounts hardening ownership
Prompt: "Review Meteor 3.6-beta.1 passwordless and HttpOnly-cookie abuse protections. Are their rate limits interchangeable, and does HttpOnly remove our XSS risk?"
Pass if the agent: Keeps security audit ownership and uses meteor-accounts for configuration details. Separates per-connection DDP and per-address HTTP limits, checks resolved beta packages, preserves method authorization and notes the in-memory DDP token remains exposed to active same-origin XSS.
Fail if it contradicts these boundaries or invents unsupported APIs.
@@ -188,3 +188,10 @@ tests do not use jQuery. Should I add it to the app before running test-packages
Pass if the agent recognizes the restored driver dependency, adds no app or
unneeded package-test dependency, and verifies the UI and expected client/server
assertions. Fail if it repeats the 1.6.0 workaround unconditionally.
## Case 20: CI runtime for beta.1
Prompt: "Adapt our Node 24 Meteor 3.5.2 test job for a deliberate upgrade to 3.6-beta.1. What runtime and native dependency checks belong in CI?"
Pass if the agent: Verifies the selected Meteor runtime, uses Node 26.8.2/npm 11.19.0 for beta.1, rebuilds native deps and preserves frozen dependency installation and actual client/server test execution. Does not claim existing 3.5.2 jobs need Node 26.
Fail if it contradicts these boundaries or invents unsupported APIs.
.meteor/types, tsconfig.json, jsconfig.json, and tsc --noEmit in a Meteor app.
Use this skill when choosing or migrating declaration providers without
changing the app's runtime or bundler. For a Meteor 2-to-3 runtime migration
use migrate-to-meteor-3 first; for SWC/Rspack compilation use
meteor-modern-build-stack or migrate-to-rspack. General TypeScript language
questions and Atmosphere declaration publishing are outside this app scope.
metadata:
author:meteor
kind:knowledge
meteor:">=3.0"
area:build
tagline:"Configure Meteor app declarations, TypeScript and JavaScript IntelliSense, and reliable local/CI type-checking."
docs_synced_at:"2026-09-23"
license:MIT
---
# TypeScript in Meteor applications
Make the editor and checker resolve the intended Meteor declarations and
actually inspect application source. Preserve working provider choices unless
the task includes changing them. A runtime or bundler upgrade does not imply
a declaration migration.
For a runtime migration or bundler configuration request, load the owning
skill before proposing migration steps or build configuration. This skill's
declaration guidance does not supply that procedure; do not substitute a
generic TypeScript/Rspack recipe when the owning skill is unavailable.
## Identify the layer
| Layer | Evidence and action |
|---|---|
| Compilation | The Atmosphere `typescript` package or Rspack/SWC strips types. Use the build owner for syntax transforms, loaders and bundling. |
| Declaration provider | Inspect `.meteor/packages`, `.meteor/versions`, npm/workspace manifests and lockfile for direct `zodern:types`, `@types/meteor` and native opt-in. |
| Resolution | Inspect active `tsconfig.json`/`jsconfig.json`, `extends`, `files`, `include`, `exclude`, `paths` and `types`. Check the editor uses the intended project/compiler. |
| Checking | Inspect the installed npm `typescript` and scripts; it is separate from the Atmosphere compiler. Preserve a configured checker such as `TsCheckerRspackPlugin`. |
Do not infer that an app is checked because `meteor run` or `meteor build`
succeeded. Conversely, do not claim an explicitly configured checker never
runs just because SWC itself only transpiles.
## Choose the provider
| Target and intent | Decision |
|---|---|
| Meteor 3 before 3.6-beta.1 | Native `meteor types` is unavailable. Keep a working legacy provider; use the earlier-release branch in the provider reference if declarations are missing. |
| New or existing 3.6-beta.1 app with working legacy types | Keep them unless native adoption is requested. Beta.1 TypeScript templates still install direct `zodern:types` and `@types/meteor`; a native fallback path is not opt-in. |
| Explicit native adoption on 3.6-beta.1 | Root config required. Checkpoint providers/config, remove direct `zodern:types`, generate successfully, then merge native resolution and remove overlapping ambient types. |
| JavaScript-only beta.1 app wanting IntelliSense | Use `jsconfig.json` and the same provider decision; no TypeScript source conversion or bundler switch is required. |
Read [declaration providers](references/declaration-providers.md) for the
TypeScript 7 compatibility, earlier providers and rollback. Read
[JavaScript IntelliSense](references/javascript-intellisense.md) for JS apps.
## Verify the effective project
1. Confirm generation actually ran. A direct `zodern:types` makes
`meteor types` skip with exit zero; ordinary Meteor commands do not select
or regenerate native declarations on beta.1.
2. Use the app's local compiler. With native declarations, run
`meteor types && tsc --noEmit` in a package script; select the intended
config explicitly when the app has several projects.
3. Check `tsc --listFiles --noEmit` includes application source. Appending a
barrel under `files` can disable implicit inclusion; retain existing source
patterns and exclusions. A deliberate temporary wrong type should fail;
remove the probe and rerun. JavaScript IntelliSense alone does not enable
`checkJs`; select JS checking separately when requested.
4. Restart the editor's TypeScript server after configuration changes. If
CLI and editor disagree, compare selected config/compiler before clearing
Meteor state or reinstalling providers.
5. Keep generated `.meteor/types/` untracked and unedited. Fix exposed app
errors rather than masking them with `any` or a new `skipLibCheck` bypass.
## Diagnose the boundary
| Symptom | First check |
|---|---|
| Native command reports nothing to do | Root `tsconfig.json` or `jsconfig.json`. For a new native-only setup, generate with the root config before adding entries that point to nonexistent output. |
| Generation fails | Read the error; local packages may need fixing. Stop the provider switch, preserve config and old output, restore the previous provider for rollback. |
| Ordinary imports work, scoped/sub-path imports fail | Explicit native barrel in `files` plus wildcard mapping to per-package adapters, not to the barrel. |
| Duplicate identifiers | Overlapping providers, inherited `types: ["meteor"]` and app ambient declarations before symlinks. |
| Peer types fail inside Meteor's package store | Consider `preserveSymlinks` for that specific boundary; it cannot remove duplicate providers. |
| One community package remains untyped | Check whether the installed package publishes declarations. No generator can promise coverage for every Atmosphere package. |
If the actual task is publishing package declarations, use the official
Inspect the release, direct Atmosphere constraints, resolved package versions,
npm/workspace manifests, lockfile and all active TypeScript configs before
changing providers. Keep compiler upgrades separate from declaration changes.
## Choose by release and provider
| Project state | Action |
|---|---|
| Meteor 3 before 3.6-beta.1 | Native `meteor types` is unavailable. Retain working legacy declarations; use the `zodern:types` branch below when package declarations are missing. |
| Upgrading to 3.6-beta.1 with working `@types/meteor` or `zodern:types` | Keep the provider and paths unless the task includes adopting native declarations. Runtime upgrade alone does not switch providers. |
| Explicit native adoption on 3.6-beta.1 | Follow the ordered migration below. The command needs a root `tsconfig.json` or `jsconfig.json`. |
| Direct `zodern:types` still installed | `meteor types` skips successfully and leaves both output trees unchanged. A zero exit is not proof of native generation. A transitive dependency alone does not select the legacy provider. |
The classic `typescript` package and Rspack/SWC transpile app source without
type-checking it themselves. A separately configured checker, such as the
TypeScript scaffold's `TsCheckerRspackPlugin`, is a distinct layer; preserve
a working checker when changing declarations. On beta.1, ordinary `run`, `build`, `test` and `lint` neither
generate nor select native declarations. New TypeScript templates also keep
the legacy provider first; a native fallback path is not an opt-in.
## Native adoption on Meteor 3.6-beta.1
1. Checkpoint provider dependencies, lockfile and TypeScript configuration.
Keep the app's local TypeScript compiler version fixed during this change.
2. Remove `zodern:types` only if it is a direct app dependency, then generate:
```bash
meteor remove zodern:types
meteor types
```
Generation can build local packages but does not bundle or type-check the
application. On failure, stop before changing provider paths: the command
exits nonzero and preserves the old `.meteor/local/types` output. Restore
the removed provider if rolling back. Successful generation removes that
stale legacy output.
3. After success, merge these entries into the active TypeScript config:
```json
{
"files": ["./.meteor/types/packages.d.ts"],
"include": ["**/*.ts", "**/*.tsx"],
"compilerOptions": {
"paths": {
"meteor/*": ["./.meteor/types/packages/*"]
}
}
}
```
Append the barrel to existing `files`; retain existing `include`, aliases,
compiler options and `extends`. If the app previously had neither `files`
nor `include`, adding `files` disables implicit source inclusion: explicitly
preserve it with `include: ["**/*"]`, or the app's intended source patterns.
Do not broaden an intentionally files-only project. Resolve paths against the config
that declares them. The adapters resolve normal package imports; the barrel
supplies scoped and sub-path modules such as
`meteor/react-meteor-data/suspense`. Explicit `files` works even when
`.meteor/**` is excluded. Do not map `meteor/*` directly to the native barrel.
4. Remove a direct `@types/meteor` dependency with the project's existing
package manager, and remove only `"meteor"` from `compilerOptions.types`
wherever it is inherited or declared. Preserve other type libraries and
the workspace lockfile. Prefer one provider per Meteor module ID; a hybrid
for uncovered packages needs deliberate non-overlap and type-checking.
5. Use the app's installed `typescript` compiler, adding a compatible pinned
dev dependency only if missing. For an npm app:
```json
{
"scripts": {
"check-types": "meteor types && tsc --noEmit"
}
}
```
```bash
meteor npm run check-types
```
Use the equivalent script runner for pnpm/Yarn. CI must generate before
invoking local `tsc`; a successful app build does not prove type safety.
Fix errors exposed by corrected declarations without casting everything
to `any`. Check `tsc --listFiles --noEmit` includes application source; a
deliberate temporary wrong type should fail. Remove that probe and rerun.
Restart the editor's TypeScript server after config changes.
Do not edit or commit `.meteor/types/`; generation replaces its contents and
writes its own `.gitignore`. Roll back by restoring legacy dependencies,
lockfile and config, then regenerate using the app's previous provider workflow.
Ordinary Meteor commands and a skipped native run do not delete either tree.
## Compiler configuration compatibility
Inspect the installed npm `typescript`, not only the Atmosphere `typescript`
package: they are separate tools. Beta.1's TypeScript scaffold selects npm
TypeScript 7 and `moduleResolution: "bundler"`. Do not copy older docs'
`baseUrl` or `moduleResolution: "node"` into it.
[TypeScript 7 removes both options](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/).
`paths` works without `baseUrl` on TypeScript 4.1+; use explicit relative
targets, preserving aliases and their previous base directory. Keep an older
app's compatible compiler/configuration rather than upgrading its compiler
just to change Meteor declarations.
## Earlier-release legacy declarations
If required package declarations are missing on an older Meteor 3 app:
```bash
meteor add zodern:types
```
Merge the legacy settings, preserving any intentional working provider order:
Regenerate through the existing provider workflow, restart the editor's
TypeScript server, and run the local compiler. Keep generated output untracked.
The legacy barrel mapping is not the native adapter mapping.
## Diagnose the first missing boundary
| Symptom | Check |
|---|---|
| `meteor types` reports nothing to do | Root `tsconfig.json` or `jsconfig.json`; do not delete caches. |
| Generation says it skipped | Direct `zodern:types` constraint, not only `.meteor/versions`. |
| Ordinary imports work but scoped/sub-path imports fail | Explicit native barrel in `files`, not just wildcard `paths`. |
| Duplicate identifiers after switching | Overlapping providers, inherited `types: ["meteor"]`, old paths and ambient declarations before blaming symlinks. |
| Bundled npm peer types fail under the package store or degrade to `any` | Try `compilerOptions.preserveSymlinks: true` for that resolution boundary. This does not fix overlapping declaration providers. |
| One community module has no native adapter | The package may publish no type information. Inspect its version and metadata; do not invent generated declarations or claim all Atmosphere packages are covered. |
Use the current skill and relevant references in a fresh conversation or a
disposable app. Keep pass/fail criteria hidden until the run finishes.
## Case 1: native provider adoption in a beta.1 app
Prompt: "Our Meteor 3.6-beta.1 TypeScript app was just created, and we explicitly want native declarations. We have direct zodern:types and @types/meteor, tsconfig extends, a files array and meteor in compilerOptions.types. Give the migration and CI sequence."
Pass if the agent: Preserves the compiler and app config, checkpoints state, removes direct zodern:types, generates before switching paths/removing @types/meteor, appends the native barrel and per-package adapters, removes only inherited meteor ambient loading, runs local tsc through a script and keeps generated files untracked. Provides rollback without treating compilation as checking.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 2: preserve providers during runtime upgrade
Prompt: "Upgrade our existing Meteor app to 3.6-beta.1 but keep the working TypeScript provider. meteor types exits zero saying zodern:types is installed. Did it generate native types, and should we remove the provider?"
Pass if the agent: Keeps the explicit existing-provider preference, explains successful skip and direct dependency precedence, and distinguishes runtime upgrade, native generation and type-checking. Does not remove working providers.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 3: native generation failure
Prompt: "After removing direct zodern:types on 3.6-beta.1, meteor types fails. Should we replace paths, uninstall @types/meteor and delete .meteor/local/types to finish?"
Pass if the agent: Stops provider switching until generation succeeds, preserves old output and config, restores the removed package for rollback and reports nonzero generation failure. Does not delete fallback output or invoke a destructive reset.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 4: native scoped imports and mixed providers
Prompt: "After beta.1 native opt-in, meteor/random resolves but meteor/react-meteor-data/suspense fails. Our tsconfig excludes .meteor and extends a config with types [meteor,node]. Why do we also see duplicate declarations?"
Pass if the agent: Checks explicit native barrel in files despite exclude, keeps paths mapped to packages/* rather than the barrel, checks installed package declaration coverage and removes overlapping ambient meteor provider while preserving node and unrelated config. Does not blame all failures on preserveSymlinks.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 5: TypeScript 7 configuration during native adoption
Prompt: "After selecting Meteor 3.6-beta.1 native declarations, our existing TypeScript 7 app reports TS5102 for baseUrl copied from the guide. Should we downgrade TypeScript or copy moduleResolution: node as well? The Rspack config already has TsCheckerRspackPlugin."
Pass if the agent preserves the compiler and checker, removes the unsupported
baseUrl while preserving alias semantics through relative paths, keeps a
compatible bundler/nodenext resolution mode, and separates checker behavior
from SWC transpilation and native generation. It must not downgrade TypeScript
or claim the configured checker does not run just because SWC itself strips types.
## Case 6: generated barrel hides application source
Prompt: "After beta.1 native opt-in we added files: [.meteor/types/packages.d.ts] to a tsconfig that previously had neither files nor include. tsc now passes even with a wrong assignment in imports/probe.ts. Are native types working?"
Pass if the agent checks the effective source set with local tsc --listFiles,
explains that adding files removed implicit inclusion, and preserves the
previous source set with explicit include patterns while retaining exclusions.
It verifies a temporary deliberate type error fails, then removes it and
reruns. It must not disable checks or claim a green exit proved app coverage.
## Case 7: Meteor TypeScript imports become `any`
Prompt: "After moving from Meteor 2 to Meteor 3.5.2, required package
declarations are missing. We want zodern:types; the editor also reports
duplicate identifiers. What should we inspect and configure?"
Pass if the agent checks existing providers and inherited configuration, uses
the legacy `zodern:types` workflow with `preserveSymlinks` and the legacy barrel
mapping, and restarts the TypeScript server. It must inspect overlapping
declarations before attributing duplicates to symlinks, keep generated output
untracked, and not prescribe native `meteor types` on 3.5.2.
## Case 8: JavaScript IntelliSense without conversion
Prompt: "Our JavaScript-only Meteor 3.6-beta.1 app wants IntelliSense for meteor/random. There is no root tsconfig or jsconfig and no direct zodern:types. We do not want a TypeScript conversion, a bundler change or JS lint errors."
Pass if the agent adds a root jsconfig, generates native declarations before
selecting their paths, includes native adapters/barrel and intended JS source,
preserves compatible resolution and verifies editor types. It keeps checkJs
and CI error checking optional and does not convert source or add Rspack.
## Case 9: missing root configuration
Prompt: "On 3.6-beta.1, meteor types says there is nothing to do. We only have tsconfig files under imports/ui and packages. Should we delete .meteor/local or run meteor reset?"
Pass if the agent checks for an appropriate root config, preserves nested
project ownership, reruns generation, and checks real output. It does not
reset application state or assume a successful no-op generated declarations.
## Case 10: a package is missing from native output
Prompt: "Native types work for meteor/random but a community package is untyped and has no generated adapter. Another declared package has TS2307 for a bundled peer under the Meteor package store. Should we edit .meteor/types or enable preserveSymlinks for everything?"
Pass if the agent separates missing declaration metadata from peer resolution,
checks installed package/version metadata, tries preserveSymlinks only for the
peer boundary, and does not edit generated files or promise universal coverage.
Any hybrid provider is deliberate, non-overlapping and checked.
## Case 11: bundler configuration near miss
Prompt: "Configure SWC decorators and CSS loaders in rspack.config.ts for our Meteor app. Existing editor types and type-checks already work."
Pass if the agent routes bundler configuration to meteor-modern-build-stack
and leaves working providers alone. The config's .ts suffix alone does not
make declarations the primary task.
Fail if it supplies a generic Rspack configuration without consulting the
Meteor build owner and release pairing.
## Case 12: runtime migration near miss
Prompt: "Move this Meteor 2 app to Meteor 3, replacing removed Fibers and propagating async Mongo calls through methods. We use TypeScript but are not changing providers."
Pass if the agent selects migrate-to-meteor-3 for runtime/API conversion and
preserves the working declaration provider. It does not replace that task
with native type setup.
Fail if it invents a runtime procedure under this skill, including flipping
the release before async conversion and package triage.
## Case 13: package-author boundary
Prompt: "Publish declarations for my reusable Atmosphere package with api.types and package-types.json. Is editing the app's generated adapter the right workflow?"
Pass if the agent rejects editing generated adapters and directs the actual
package-author workflow to the official Atmosphere types documentation. It
does not claim the app-provider skill implements package publication or that
@@ -344,12 +344,15 @@ with `try`/`catch` at the owning async boundary.
## Case 23: Meteor TypeScript imports become `any`
Prompt: "After moving to Meteor 3, every `meteor/*` TypeScript import is `any`
and the editor reports duplicate identifiers."
Prompt: "After moving from Meteor 2 to Meteor 3.5.2, required package
declarations are missing. We want zodern:types; the editor also reports
duplicate identifiers. What should we inspect and configure?"
Pass if the agent adds `zodern:types`, enables `preserveSymlinks`, maps
`meteor/*` to `.meteor/local/types/packages.d.ts`, and restarts the TypeScript
server. It must keep generated types out of source control.
Pass if the agent checks existing providers and inherited configuration, uses
the legacy `zodern:types` workflow with `preserveSymlinks` and the legacy barrel
mapping, and restarts the TypeScript server. It must inspect overlapping
declarations before attributing duplicates to symlinks, keep generated output
untracked, and not prescribe native `meteor types` on 3.5.2.
## Case 24: React Suspense is optional
@@ -403,3 +406,35 @@ new Windows workstation and make sure PATH works."
Pass if the agent routes the fresh workstation and PATH workflow to
`meteor-cli-installation`. Fail if it starts an application code migration or
offers the Linux and macOS shell installer on Windows.
## Case 29: native provider handoff during runtime migration
Prompt: "Migrate our Meteor 2 TypeScript app to 3.6-beta.1, including async APIs and an explicit native declaration switch. Which workflow owns each part?"
Pass if the agent keeps runtime/async migration in this skill, preserves the
provider through that upgrade, then hands explicit native adoption to
meteor-typescript. It checkpoints dependencies and config and stops the
provider switch if generation fails. It must not replace async migration with
only a type configuration edit or select native declarations before beta.1.
## Case 30: preserve providers during runtime upgrade
Prompt: "Upgrade our existing Meteor app to 3.6-beta.1 but keep the working TypeScript provider. meteor types exits zero saying zodern:types is installed. Did it generate native types, and should we remove the provider?"
Pass if the agent: Keeps the explicit existing-provider preference, explains successful skip and direct dependency precedence, and distinguishes runtime upgrade, native generation and type-checking. Does not remove working providers.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 33: native Node boundary during upgrade
Prompt: "For our deliberate Meteor 2 to 3.6-beta.1 migration, can the existing Node 24 production image stay unchanged?"
Pass if the agent: Uses Node 26.8.2/npm 11.19.0 for beta.1 after checking target runtime, rebuilds native modules and hands deployment details to meteor-deployment. Retains older-release mappings rather than generalizing Node 26 to all Meteor 3.
Fail if it contradicts these boundaries or invents unsupported APIs.
## Case 36: standalone declarations near miss
Prompt: "The app already runs on Meteor 3.6-beta.1. Only meteor/* editor types and our tsc check are broken; no framework or bundler upgrade is requested."
Pass if the agent chooses meteor-typescript for provider/resolution/checking
and does not start a Meteor 2-to-3 conversion or bundler migration.
Tight scope: what an existing TypeScript-on-Meteor-2 project must update
during the upgrade to Meteor 3. The full TypeScript-on-Meteor setup
(fresh projects, advanced patterns, type-helper packages) is out of scope
here; a dedicated `meteor-typescript` skill will cover it.
Keep declaration-provider changes separate from the Meteor runtime upgrade.
Inspect the target release, direct `.meteor/packages` constraints,
`.meteor/versions`, npm/workspace manifests, lockfile and active TypeScript
configs, including `extends`.
## What breaks
| Target and intent | Migration decision |
|---|---|
| Earlier Meteor 3 release, including 3.5.2 | Native `meteor types` is unavailable. Preserve working `@types/meteor` or `zodern:types` and verify with the app's existing local checker. |
| Meteor 3.6-beta.1 runtime upgrade only | Keep the provider, compiler and config. The upgrade does not select native declarations. |
| Explicit native adoption on beta.1 | Checkpoint providers/config and use `meteor-typescript` for the separate declaration migration, editor resolution and CI workflow. |
After the upgrade, imports from `meteor/*` resolve to `any` or fail
outright. The Meteor 2 type-shipping mechanism is no longer compatible
with the 3.x build, so any `import { Meteor } from 'meteor/meteor';`
loses its types.
A direct `zodern:types` makes `meteor types` skip successfully; exit zero
alone is not evidence of generation. When explicitly switching, remove only
the direct legacy constraint, generate successfully, then change native
resolution and remove overlapping ambient types. Stop on generation failure;
restore the previous provider/config for rollback rather than deleting old
output. The native generator preserves legacy output on failure.
## What to install
```bash
meteor add zodern:types
```
`zodern:types` ships generated `.d.ts` files keyed off your local Meteor
install. It replaces the older approaches used in Meteor 2.
## `tsconfig.json` updates
Two changes are required:
```jsonc
{
"compilerOptions":{
// 1. Resolve symlinks the way Meteor's package layout expects.
"preserveSymlinks":true,
// 2. Map meteor/* imports to the generated types directory.
"baseUrl":"./",
"paths":{
"meteor/*":[".meteor/local/types/packages.d.ts"]
}
}
}
```
Without `preserveSymlinks: true`, TypeScript follows symlinks in
`.meteor/local/build/` and reports duplicate identifier errors. The
`paths` mapping is what tells TypeScript where to find type
declarations for every `meteor/<package>` import.
## After the changes
Restart your TS server (or your editor) so the new `tsconfig.json` is
picked up. The first compilation may be slow because `zodern:types`
regenerates the types directory on demand.
## Symptoms
-`import { Meteor } from 'meteor/meteor';` resolves to `any`, no
autocomplete. The `paths` mapping in `tsconfig.json` is missing.
- "Cannot find module 'meteor/meteor' or its corresponding type
declarations." `zodern:types` is not installed.
- "Duplicate identifier 'Meteor'." `preserveSymlinks` is not set.
Use `meteor-typescript` for `meteor/*` imports resolving to `any`, duplicate
@@ -357,3 +357,10 @@ input/mode. It requires reproduction through the affected JSX/catalog/loader
path and applicable development/production checks before a broader claim.
Fail if it declares all plugin 5.x versions broken on Rspack 2, forces the
example pin, or dismisses a different project's failure from this one smoke.
## Case 36: beta.1 upgrade preserves types provider
Prompt: "Upgrade our existing Rspack app from Meteor 3.5.2 to 3.6-beta.1. Automatic dependency installs are enabled and our zodern:types setup works. Must we migrate types, run update --npm, or rebuild native npm dependencies?"
Pass if the agent: Uses update --release 3.6-beta.1 then normal startup, checks the beta.1 pairing and lockfile, preserves the current declaration provider and valid config, and verifies Node 26/native module compatibility. Does not mandate a second update --npm or native declaration migration.
Fail if it contradicts these boundaries or invents unsupported APIs.
Use this branch for Meteor 3.6, verified on `3.6-beta.0`, with
`rspack@1.4.0-beta360.0` and `@meteorjs/rspack@3.0.0-beta.1`.
Use this branch for Meteor 3.6 beta. The current audited target is
`3.6-beta.1`, with `rspack@1.4.0-beta360.1` and
`@meteorjs/rspack@3.0.0-beta.2`. A deliberately pinned `3.6-beta.0` keeps
`rspack@1.4.0-beta360.0` and `@meteorjs/rspack@3.0.0-beta.1`; use the
requested release instead of silently changing the target.
Meteor 3.5.2 keeps `rspack@1.3.0`, `@meteorjs/rspack@2.2.0` and Rspack 1.x.
Do not force Rspack 2 into a constrained older release.
@@ -12,7 +15,7 @@ Do not force Rspack 2 into a constrained older release.
2. With default `meteor.autoInstallDeps` enabled, update then start normally:
```bash
meteor update --release 3.6-beta.0
meteor update --release 3.6-beta.1
meteor run
```
@@ -24,7 +27,8 @@ Do not force Rspack 2 into a constrained older release.
test a frozen install. `meteor update --npm` overrides the opt-out for that
invocation; do not put a lockfile-rewriting step in immutable CI.
3. The beta's required npm minimums are core/CLI/dev-server 2.2.0, Meteor integration
3.0.0-beta.1, SWC core 1.15.32, helpers 0.5.23 and Rsdoctor 1.5.9.
3.0.0-beta.2 on beta.1 (3.0.0-beta.1 on beta.0), SWC core 1.15.32,
helpers 0.5.23 and Rsdoctor 1.5.9.
Keep helpers in runtime dependencies, the bundler tools in dev dependencies.
Detected React adds refresh plugin 2.0.0 and refresh runtime 0.17.0.
Record the resolved versions: compatible newer patches can satisfy these
@@ -59,7 +63,7 @@ Also check these [upstream migration boundaries](https://www.rspack.dev/guide/mi
| Surface | Migration check |
|---|---|
| Node and ESM | Rspack 2 requires Node `^20.19.0 \|\| >=22.12.0`. Meteor 3.6-beta.0 bundles Node 24.15.0; host Node 18 alone does not prove a Meteor build incompatibility. Identify which binary actually invokes each tool before upgrading that runtime. Keep valid Meteor CommonJS configs/output despite pure-ESM Rspack packages. |
| Node and ESM | Rspack 2 requires Node `^20.19.0 \|\| >=22.12.0`. Meteor 3.6-beta.1 bundles Node 26.8.2, beta.0 bundles Node 24.15.0; host Node 18 alone does not prove a Meteor build incompatibility. Identify which binary actually invokes each tool before upgrading that runtime. Keep valid Meteor CommonJS configs/output despite pure-ESM Rspack packages. |
| Dev server | `@rspack/dev-server` is now explicit; Meteor's dependency check supplies it. Review custom `devServer.proxy` and `watchFiles` against the v2 guide before reusing old shapes. |
| Resolution | Upstream changes cover `.wasm` extension lookup, CSS `@import` conditions and empty `resolve.roots`. Meteor supplies explicit extensions and project roots. Inspect `resolve.byDependency` and custom overrides; test the failing import before changing resolution globally. |
| Custom plugins | Review the plugin's Rspack 2 support and the [2.0 breaking-change overview](https://www.rspack.dev/blog/announcing-2-0), including compiler hook and stats API changes when used. |
@@ -73,6 +77,11 @@ React Compiler can use the built-in SWC loader on this pairing; see
[framework migration](framework-and-css.md). Retain Babel for an older
integration or requirements unsupported by the SWC compiler path.
Native TypeScript declarations are a separate beta.1 opt-in. Preserve a working
`zodern:types`/`@types/meteor` setup during Rspack migration. Neither SWC nor
normal startup generates native declarations. Preserve a configured checker.
Use `meteor-typescript` when the task also includes changing providers.
## Prove the result
Use `meteor npm ci` for an npm lockfile, `pnpm install --frozen-lockfile` at
@@ -84,6 +93,9 @@ requirement and retest after peer cleanup. Do not convert managers to fix CI.
Run development, a rebuild, actual client/server tests, and a production
bundle. Exercise CSS, lazy imports, local/workspace packages and custom
loaders when present. Boot the extracted bundle and load the browser page.
For beta.1, rebuild and exercise native npm dependencies against Node 26.8.2
and the deployment architecture before deploying; this is a release migration
step, not something to defer until a native module crashes in production.
Follow the [validation matrix](validation-matrix.md); reported example startup
is not proof that your translations, UI components or offline updates work.
For a failure, capture the [migration report](troubleshooting.md#reporting-issues)
# misclassified that missing loader as an application startup bug.
# AppDir is the exact tree just packed, so this also avoids extracting
# the large image merely to make the capability decision.
if ! AppDir/usr/lib/wekan/bundle/node --version >/dev/null 2>&1; then
if ! LD_LIBRARY_PATH="$PWD/AppDir/usr/lib/wekan/bundle/node-runtime${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" AppDir/usr/lib/wekan/bundle/node --version >/dev/null 2>&1; then
echo "::warning::this runner cannot execute the bundled ${{ matrix.appimage_arch }} Node binary, so the AppImage was packed but not started. It is uploaded unchecked."
echo "::warning::v${{ steps.plan.outputs.version }} is missing ${{ steps.plan.outputs.manual }}, which this workflow cannot build: amd64 is the Meteor build, arm64/win64/mac-arm64 each need their own runner, and the Sandstorm .spk is signed. Run release-all.yml for those."
echo "::error::v${{ steps.plan.outputs.version }} still lacks ${{ steps.plan.outputs.manual }} after recovery. Inspect the matching full-release run; older unnamed runs need their failed jobs retried manually."
exit 1
# The six architectures nobody else builds for, repacked from the PUBLISHED
# amd64 bundle - which is what makes this possible without a Meteor build.
@@ -113,7 +113,7 @@ By working directly with WeKan ® you get the benefit of active maintenance and
## Getting Started with Development
The main branch uses Meteor 3.5 with Node.js 24.x.
The main branch uses Meteor 3.6-beta.1 with Node.js 26.x.
See [CHANGELOG.md](https://github.com/wekan/wekan/blob/main/CHANGELOG.md) for the latest runtime updates.
To contribute, [create a fork](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./build.sh` (or `./build.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#3-install-dependencies-build-wekan-and-run-the-dev-server). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#7-test).
@@ -127,7 +127,7 @@ Please refer to the [developer documentation](https://github.com/wekan/wekan/blo
Before building WeKan from source, ensure you have:
- **Git** - for cloning the repository
- **Node.js 24.x** - WeKan requires Node.js 24.x
- **Node.js 26.x** - WeKan requires Node.js 26.x
- **Meteor** - the JavaScript framework WeKan is built with
echo"==> Deleting .build and building WeKan before running the tests (always, so the tests run against the current source)."
build_wekan
if[ ! -d .build/bundle ];then
echo"ERROR: .build/bundle is missing after building. Aborting the test run."
return1
fi
fi
if["$RUN_MODE"= parallel ];then
echo"Running ALL tests against ONE WeKan server on http://localhost:3000 - all jobs run IN PARALLEL (concurrently). Needs plenty of RAM (fine on 32 GB)."
else
echo"Running ALL tests against ONE WeKan server on http://localhost:3000 - all jobs run SEQUENTIALLY (one at a time)."
select cat in "Setup""Dev server""Tests""Docker""Releases""CLI commands""Tools""Quit";do
select cat in "Setup""Dev server""Dev server nobuild""Tests""Docker""Releases""CLI commands""Tools""Quit";do
case$cat in
"Setup")
choose "Setup"\
@@ -2719,8 +2804,8 @@ while [ -z "$opt" ]; do
"Build WeKan development bundle|Build WeKan development bundle"\
"git pull|git pull: fetch, fast-forward or merge onto origin, repoint the CHANGELOG commit links the rebase moved, and preserve unresolved conflict state"\
"git push|git push: check the CHANGELOG commit links resolve before publishing them, push this branch to origin, and pull-then-retry once if origin moved meanwhile";;
"Dev server")
choose "Dev server"\
"Dev server"|"Dev server nobuild")
choose "$cat"\
"localhost:3000|Run Meteor for dev on http://localhost:3000"\
"localhost:3000 + trace warnings|Run Meteor for dev on http://localhost:3000 with trace warnings, and warnings using old Meteor API that will not exist in Meteor 3.0"\
"localhost:3000 + bundle visualizer|Run Meteor for dev on http://localhost:3000 with bundle visualizer"\
@@ -2734,6 +2819,7 @@ while [ -z "$opt" ]; do
"EVERYTHING two-worker|Run EVERYTHING with stages one by one and two Playwright workers per browser; database and FerretDB stages stay sequential; logs in log/<datetime>/"\
"EVERYTHING one by one|Run EVERYTHING one stage and one Playwright worker at a time for minimum RAM usage; database and FerretDB stages stay sequential; logs in log/<datetime>/"\
"EVERYTHING at once|Run EVERYTHING with the WeKan test jobs concurrently; database backends and FerretDB stages stay sequential; logs in log/<datetime>/"\
"EVERYTHING source one by one|Run EVERYTHING against Dev server nobuild on localhost:3000, one test at a time, all browsers"\
"Mocha (server-side)|Test Mocha unit + security + API-logic tests (server-side only, no browser)"\
"Import regression|Test import regression (tests/wekanCreator.import.test.js, fast, no server)"\
DEFAULT_METEOR_REACTIVITY_ORDER="changeStreams,oplog,polling"DDP_TRANSPORT=sockjs DEBUG=trueWRITABLE_PATH=.. WITH_API=trueRICHER_CARD_COMMENT_EDITOR=falseROOT_URL="$DEV_ROOT_URL"meteor run --port "$DEV_PORT" 2>&1| tee "$(one_log dev-server)"
DEFAULT_METEOR_REACTIVITY_ORDER="changeStreams,oplog,polling"DDP_TRANSPORT=sockjs DEBUG="${DEBUG:-false}"WRITABLE_PATH=.. WITH_API=trueROOT_URL="$DEV_ROOT_URL""${DEV_COMMAND[@]}" --port "$DEV_PORT" 2>&1| tee "$(one_log dev-server)"
DEFAULT_METEOR_REACTIVITY_ORDER="changeStreams,oplog,polling"DDP_TRANSPORT=sockjs DEBUG=trueWRITABLE_PATH=.. WITH_API=trueRICHER_CARD_COMMENT_EDITOR=falseROOT_URL=http://$IPADDRESS:$PORTmeteor run --port $PORT 2>&1| tee "$(one_log dev-server)"
DEFAULT_METEOR_REACTIVITY_ORDER="changeStreams,oplog,polling"DDP_TRANSPORT=sockjs DEBUG="${DEBUG:-false}"WRITABLE_PATH=.. WITH_API=trueROOT_URL=http://$IPADDRESS:$PORT"${DEV_COMMAND[@]}" --port $PORT 2>&1| tee "$(one_log dev-server)"
//- Issue #4757: same permalink pattern as the comment timestamp in
Loaded 100 of 2000 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.