chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 - #3
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.0 to 4.3.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.3.0...4.3.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.3.1 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Deploying imqueue-org with
|
| Latest commit: |
490b1c6
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://e140c870.imqueue-org.pages.dev |
| Branch Preview URL: | https://dependabot-npm-and-yarn-js-y.imqueue-org.pages.dev |
Deploying imqueue-com with
|
| Latest commit: |
490b1c6
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5ab23fed.imqueue-com.pages.dev |
| Branch Preview URL: | https://dependabot-npm-and-yarn-js-y.imqueue-com.pages.dev |
Contributor
Author
|
Looks like js-yaml is up-to-date now, so this is no longer needed. |
Mikhus
added a commit
that referenced
this pull request
Aug 21, 2026
The corpus is built from the markdown mirrors, and the mirrors carry `# Title` plus a Source/Published/Author block and nothing else — front matter is not in them by design. So the two most deliberately curated relevance signals on this site were absent from its own search: `description` was ignored in favour of each page's first paragraph, and `keywords` was unused entirely. 186 curated phrases across 29 posts, 140 of which appear nowhere in the indexed text. The consequence, measured as the rank of the page each phrase was WRITTEN for: handle traffic spikes microservices absent of 32 -> #1 nodejs backpressure microservices absent of 32 -> #5 overload resilience absent -> #1 message queue throughput #32 of 134 -> #3 nodejs job queue #36 of 93 -> #3 imqueue benchmark #2 of 140 -> #1 Weighted at 300 — BELOW emphasis — and scored on coverage alone: no density, no position, no phrase bonus. A keyword list is a handful of comma-separated phrases, so occurrences-per-token sits near 1.0 for anything that matches at all, and density would rank by brevity while rewarding padding; order in a comma list means nothing, so position would be noise. That placement is the point rather than caution for its own sake. Google has ignored <meta name="keywords"> since 2009 and Bing treats a stuffed one as a spam signal — because neither can trust the author. A first-party index can: the author is the site. What does not change is that a self-declared list is cheap to pad, so it sits under the signals that cost something to fake, and check:search-ranking asserts "safeDelivery" still ranks the symbol first — the failure mode meta keywords earned its reputation for is an identifier query returning articles that merely list the identifier. Plumbed through a build intermediate: src/search-frontmatter.11ty.js emits url -> {description, keywords} and the generator reads it and DELETES it, so it never ships. A template rather than a front-matter parse because mapping a source file back to its URL means re-deriving permalink resolution, which Eleventy owns and which this repo has already been bitten by duplicating; `item.url` cannot drift from what Eleventy published. Keyword text also feeds the vocabulary, so inflections in a keyword list get lemmas like any other word. Tier 1 grows 65.2 -> 67.5 KB gz on org, 0.9 -> 1.1 on com. One defect worth recording: the new record was first named `entry`, inside a loop whose variable is the directory entry. Shadowing it in the same block is a temporal-dead-zone error reported at the line ABOVE, which reads as readdir having failed.
Mikhus
added a commit
that referenced
this pull request
Aug 21, 2026
…e URL path Reported from the browser, both on imqueue.org: "what is imqueue license" put the whole COMMERCIAL (imqueue.com) group above imqueue.org's own licensing page, and "what is imqueue licensing options are" ranked a Moleculer comparison first with /license/ third. SITE PRIORITY IS NOW A RULE, NOT A WEIGHT The site you are on wins: every local result precedes every peer result, the peer group renders last whatever it scored, and a merged list sorts local first. PEER_WEIGHT = 0.8 is gone — a multiplier expresses a preference, and com's pages are titled things like "@imqueue — commercial license & support", so it lost outright on score. A rule has to be enforced where the order is decided. The cost is accepted and stated in the code: on imqueue.org, "pricing" now shows org's licensing material above imqueue.com/pricing/ even though org has no pricing page. The peer group is still there, labelled, one glance below. check:search-ranking asserts the invariant over five queries and separately asserts that imqueue.com/pricing/ is still REACHABLE as the best peer result — priority is about order, not exclusion. DENSITY CANNOT EXCEED COVERAGE `IMQOptions` is two tokens, so matching just "options" gave it density 1.0 and the interface ranked FIRST for "licensing options", with the licensing page at #50. Density measures how concentrated the matched terms are; if half the query missed, half is the most that concentration can be worth. One line, and it is the fix with the widest reach here. THE URL PATH IS AN ELEMENT Weak (190), coverage plus how much of the path the query accounts for. A site's canonical page on a subject usually has the subject in its path, which is why every search engine uses this — /license/ matching "licensing" is the whole identity of that page. Not for generated reference: a symbol's path is derived from its own name, so scoring it double-counts the title, and the package segment is a bare English word — `job`, `net`, `core`. That version lifted every @imqueue/job symbol above the article written for "nodejs job queue", #3 to #10, which the check caught. Measured, over eight licensing-intent phrasings: licensing options #50 -> #1 what is imqueue licensing options are #3 -> #1 is imqueue free #91 -> #68 can i use imqueue commercially #34 -> #25 what license does imqueue use #6 -> #5 TWO THINGS TRIED AND REJECTED A -ly rule for the lemmatizer, to reach "commercially" -> "commercial". It also produced `reply -> rep`, `apply -> app`, `only -> on` and `fully -> ful`, and the validity check cannot help because all four are words. That is the tell that -ly is DERIVATIONAL: it attaches to an adjective, so reversing it needs a part of speech. Same reason -er and -est are absent. "reply" is request/reply vocabulary on half this site. And the front-matter intermediate is now MOVED out of the output rather than deleted. Deleting it made the generator non-idempotent: `eleventy.after` fires on every rebuild, and an incremental one under --serve that did not re-render that template found no file and rewrote the index with every curated keyword silently absent. Twice I measured that as "the keywords element has stopped working" — with numbers identical to before the feature existed. The rest of that confusion was mine: I had silenced build output with `>/dev/null` and `| tail -1`, so I was reading a stale index from a build I could not see fail. Three phrasings remain weak — "is imqueue free" at #68, "can i use imqueue commercially" at #25. Both are conversational questions whose carrying word is paraphrased, and the cause is that "use" and "imqueue" weigh the same as "license": there is no inverse document frequency in this ranker. That is the next real signal, not a tuning problem.
Mikhus
added a commit
that referenced
this pull request
Aug 21, 2026
…alls The MCP switch was held back by one number: chat-shaped questions 73.3% -> 65.8%, measured over the twelve hand-written questions in that server's smoke test. Twelve cases cannot decide a delivery, and the labelled sets that can did not exist then. They do now, so recall.js grew --set: agent 99.5% vs 83.9% +15.6 p < 0.0001 569 better / 0 worse question 66.1% vs 55.7% +10.4 p = 0.0241 20 better / 8 worse intent 78.9% vs 73.7% +5.3 unmeasured 4 better / 3 worse The direction reverses: on 115 questions the switch is a significant GAIN. The twelve were not a sample of that population. What survives is narrower and sharper. The three intent queries the switch loses are the three the build log named as the worst failures, and the published ranker answers all three near the top -- expose #1 vs #7, classType #1 vs #9, the job-delay query #3 vs #7. All three describe a symbol instead of naming it, which is the shape the server's own instruction #1 requires. The mechanism is now a number rather than an anecdote: of the 71 questions whose answer is not a blog page, 17 get a blog post at #1 and 13 of those lose the answer from the top 6. Blog FAQ headings ARE questions, so they win the question template. Live on imqueue.org today, both consumers. Also here: - --ref reads a past ranker for the site side too, so the pin can be tested. Identical at 2d999d9: none of Phase 1's five commits moved either labelled set's recall@6, and the submodule pin does not change this decision. - baseline() moves into lib/harness.js. Three runners had grown their own copy of the same git-show-inside-the-submodule dance. - An MCP build with no rankEntries() export is a hard error naming the cause. Phase 2 replaced it with this ranker, so the script would otherwise compare this ranker with itself and report a flawless dead heat -- the most convincing wrong answer available. - kpi:questions was declared twice in package.json; the second won.
Mikhus
added a commit
that referenced
this pull request
Aug 21, 2026
The metrics table said what each number asks and why it is there, and never once expanded the abbreviation or gave the formula. Every table in the report is headed with them. So: Precision at 1, Mean Reciprocal Rank, recall at 6, normalized Discounted Cumulative Gain at 10 — each with what it computes per query, what the @k suffix means, and a worked table of what all four give for a target landing at #1, #2, #3, #4, #6, #7, #10, #11 and past #50. The table is generated from lib/harness.js rather than from the textbook, because in one respect they differ. That respect is worth stating plainly, since anyone who knows nDCG will assume otherwise: OURS IS NOT CUMULATIVE. Textbook DCG sums the discounted gains of every relevant hit inside the window; evaluate() takes the single best contribution (Math.max). It is deliberate — `also` lists ALTERNATIVES, so the ideal ranking puts one of them first rather than all of them, and summing would reward a ranker for returning three spellings of the same answer. The note existed before the README was rewritten and did not survive the rewrite; this puts it back next to the definition instead of three sections away. Also documents the two labels that appear in the tables with no explanation anywhere: `lost` (the target never returned, or returned past rank 50 — the deep and unreachable buckets summed) and micro versus macro. And names where each metric goes blind, which the numbers alone do not show: r@6 falls off a cliff between #6 and #7, nDCG@10 reaches zero after #10, and MRR@target stops counting at rank 50 because that is the window evaluate() scores.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps js-yaml from 4.3.0 to 4.3.1.
Changelog
Sourced from js-yaml's changelog.
Commits
86e91b84.3.1 releasedc3cc4b0Backport quadratic complexity fix for !!omapDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.