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)"
Loaded 100 of 1206 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.