<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Junaid Ahamed</title>
    <description>The latest articles on DEV Community by Junaid Ahamed (@junaidahamed7777).</description>
    <link>https://dev.to/junaidahamed7777</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4175643%2F1111c566-97d4-48d8-ab0c-eab03e25c3ff.jpg</url>
      <title>DEV Community: Junaid Ahamed</title>
      <link>https://dev.to/junaidahamed7777</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/junaidahamed7777"/>
    <language>en</language>
    <item>
      <title>Release Sieve: a local AI second look at your release notes</title>
      <dc:creator>Junaid Ahamed</dc:creator>
      <pubDate>Tue, 13 Oct 2026 18:29:41 +0000</pubDate>
      <link>https://dev.to/junaidahamed7777/release-sieve-a-local-ai-second-look-before-you-ship-1f10</link>
      <guid>https://dev.to/junaidahamed7777/release-sieve-a-local-ai-second-look-before-you-ship-1f10</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;A developer writes &lt;strong&gt;"prevent duplicate charges on webhook retries."&lt;/strong&gt; The customer sees &lt;strong&gt;"a repeated payment notification will no longer bill you twice."&lt;/strong&gt; Different words, the same fix—and one relationship a release reviewer needs to find.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Release Sieve&lt;/strong&gt; compares commit evidence with the planned notes for one release. An open-weight sentence model runs on your device, ranking candidate notes and flagging weak or ambiguous associations. The report keeps source messages, filenames, and scores visible. Breaking changes always require review. Export HTML, JSON, or Markdown to keep the evidence with the release.&lt;/p&gt;

&lt;p&gt;The hypothetical buyer is a freelance maintainer preparing a client's release. They could export the chosen Git range, compare it with the customer-facing draft, investigate gaps, and include the evidence report in the handoff. The paid deliverable I would test is configuring that Git export and local review check for the client's release process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Willingness to pay is unvalidated.&lt;/strong&gt; I have no customer, payment, external user trial, or measured time saving to report. The prototype establishes working mechanics and a reproducible way to inspect errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://junaidahamed-7777.github.io/release-sieve/" rel="noopener noreferrer"&gt;Try the browser app&lt;/a&gt;&lt;/strong&gt; and choose &lt;strong&gt;Review release&lt;/strong&gt;. It runs the real model on the preloaded synthetic example. No account, installation, API key, or repository access is required. The first audit downloads approximately &lt;strong&gt;38 MB&lt;/strong&gt; of model and WebAssembly assets, plus the smaller app bundles. Release evidence is processed locally.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flqmcev7b5yxswd9prqq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flqmcev7b5yxswd9prqq7.png" alt="Release Sieve reviewing a synthetic Ledger Finch release" width="800" height="2265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The invented &lt;strong&gt;Ledger Finch&lt;/strong&gt; release starts with six changes and four notes. The result is &lt;strong&gt;three review items, one semantic match, and two internal suggestions&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Evidence&lt;/th&gt;
&lt;th&gt;Reviewer sees&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Duplicate-payment fix&lt;/td&gt;
&lt;td&gt;Association with its customer-friendly note.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timezone reminder fix&lt;/td&gt;
&lt;td&gt;Possible omission needing review.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Old invoice API removal&lt;/td&gt;
&lt;td&gt;High-priority review, retaining the related migration note as evidence.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV export&lt;/td&gt;
&lt;td&gt;Two plausible notes whose gap falls below the ambiguity policy.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dark-theme announcement&lt;/td&gt;
&lt;td&gt;No accepted change link; something to investigate.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Filter &lt;strong&gt;Needs review&lt;/strong&gt;, search "timezone," choose &lt;strong&gt;Add the missing note&lt;/strong&gt;, and review again. The queue becomes &lt;strong&gt;two review items, two matches, and two internal suggestions&lt;/strong&gt;. The API removal and CSV ambiguity remain. One added sentence addresses one gap; it does not certify the release.&lt;/p&gt;

&lt;p&gt;Replace the examples with commit lines or local JSON/Markdown files. Edits invalidate old results. Cancel stops the worker and preserves the draft. Later reviews reuse the loaded model, even without network access in that open page. Only public model/runtime assets may be cached; drafts remain in memory. Offline page reload is not guaranteed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Measuring the second look
&lt;/h3&gt;

&lt;p&gt;I froze &lt;strong&gt;48 author-constructed synthetic cases and their expected decisions before scoring&lt;/strong&gt;, holding them out from threshold selection. The model and its &lt;strong&gt;0.48/0.06&lt;/strong&gt; defaults stayed unchanged. The transparent baseline uses cosine similarity over word counts; its second operating point selects gates using &lt;strong&gt;12 separate calibration cases&lt;/strong&gt;. These are diagnostic specifications, not independent annotations or representative production data. &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/evaluation/README.md" rel="noopener noreferrer"&gt;Fixtures, protocol, and reproduction&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/evaluation/results/native.json" rel="noopener noreferrer"&gt;native results&lt;/a&gt; separate &lt;strong&gt;38 ordinary cases&lt;/strong&gt;: 16 with a unique adequate note, 22 requiring review.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Matcher: score/gap&lt;/th&gt;
&lt;th&gt;Correctly accepted / 16&lt;/th&gt;
&lt;th&gt;Sent to review / 38&lt;/th&gt;
&lt;th&gt;Unsafe / all accepted&lt;/th&gt;
&lt;th&gt;Must-review cases accepted / 22&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MiniLM: 0.48/0.06&lt;/td&gt;
&lt;td&gt;16/16&lt;/td&gt;
&lt;td&gt;12/38&lt;/td&gt;
&lt;td&gt;10/26&lt;/td&gt;
&lt;td&gt;10/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Word counts: 0.48/0.06&lt;/td&gt;
&lt;td&gt;8/16&lt;/td&gt;
&lt;td&gt;20/38&lt;/td&gt;
&lt;td&gt;10/18&lt;/td&gt;
&lt;td&gt;10/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Word counts, calibrated: 0.60/0.20&lt;/td&gt;
&lt;td&gt;8/16&lt;/td&gt;
&lt;td&gt;23/38&lt;/td&gt;
&lt;td&gt;7/15&lt;/td&gt;
&lt;td&gt;7/22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;MiniLM accepted associations for all eight paraphrases; both lexical variants sent them to review. &lt;strong&gt;It also accepted all eight hard negatives and two of six ambiguous cases.&lt;/strong&gt; The eight hard negatives contradict the specified behavior, value, scope, or condition. The two ambiguity failures violate a conservative review policy; they are not necessarily factual errors. A change raising a timeout from 10 to 30 seconds matched a note lowering it from 10 to 3, at score &lt;strong&gt;0.816&lt;/strong&gt;. Ten of 26 accepted associations were unsafe under these labels (&lt;strong&gt;38.5%&lt;/strong&gt;). Fewer review rows did not mean fewer mistakes. Treat its output as candidate evidence for a maintainer to inspect, never an automatic release approval.&lt;/p&gt;

&lt;p&gt;The six breaking changes all stayed in review and four internal cases followed the label heuristic. Those are separate policy checks, not model-accuracy credit. &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/evaluation/results/browser.json" rel="noopener noreferrer"&gt;Browser WASM decisions&lt;/a&gt; agreed with Node on all 48 cases. Every outcome is retained; this small deliberately constructed set cannot estimate a real-world error rate.&lt;/p&gt;

&lt;p&gt;For a &lt;strong&gt;20-change/12-note workload&lt;/strong&gt; (28 encoded texts), native median setup-plus-audit time was &lt;strong&gt;471 ms&lt;/strong&gt; (range 452–517; five fresh processes); model reuse was &lt;strong&gt;59 ms&lt;/strong&gt; (52–86; ten runs). Browser worker round-trip medians were &lt;strong&gt;840 ms&lt;/strong&gt; (801–947; five empty-cache contexts), &lt;strong&gt;657 ms&lt;/strong&gt; (621–673; five cached fresh workers), and &lt;strong&gt;214 ms&lt;/strong&gt; (212–220; ten reused-worker runs). Measurements used Windows x64, Node 26.8.1 with two intra-op threads, and headless Edge 153 with one WASM thread. Native setup-plus-audit excludes Node startup. Browser timings run from immediately before postMessage until the result event. They exclude worker construction and startup already completed, but may include remaining startup. Browser launch, page loading, and rendering are excluded. The &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/evaluation/README.md#timing-definition-correction" rel="noopener noreferrer"&gt;timing-definition correction&lt;/a&gt; documents the earlier wording error while preserving the frozen script and observations. OS caches were not flushed; asset delivery used loopback. These are local timings, not public download-speed claims.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/JunaidAhamed-7777" rel="noopener noreferrer"&gt;
        JunaidAhamed-7777
      &lt;/a&gt; / &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve" rel="noopener noreferrer"&gt;
        release-sieve
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Local semantic release-note review with pinned open-weight AI, traceable evidence, and no paid APIs
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Release Sieve&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Before you ship, check what your notes missed.&lt;/strong&gt; A local semantic release-note review tool for small software teams and freelance maintainers.&lt;/p&gt;
&lt;p&gt;Release Sieve compares commit evidence with the notes for one release. Paste or upload evidence in the browser, run the open-weight model on your device, and inspect related notes, possible gaps, and breaking changes. Download an HTML report, a JSON record, or a Markdown review table. It does not write release notes or publish anything.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://junaidahamed-7777.github.io/release-sieve/" rel="nofollow noopener noreferrer"&gt;Open the browser app&lt;/a&gt; · &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/docs/MODEL_CARD.md" rel="noopener noreferrer"&gt;Model provenance&lt;/a&gt; · &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/docs/ARCHITECTURE.md" rel="noopener noreferrer"&gt;Architecture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/JunaidAhamed-7777/release-sieve/demo/web-desktop.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FJunaidAhamed-7777%2Frelease-sieve%2FHEAD%2Fdemo%2Fweb-desktop.png" alt="Release Sieve browser workbench"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Try it in the browser&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Open the app, load a synthetic example, and choose &lt;strong&gt;Review release&lt;/strong&gt;. The first run downloads approximately 38 MB of SHA-256-verified model and WebAssembly runtime assets from the same site. Your evidence is processed in a worker on your device; it is not included in network requests or saved in browser storage. Verified model assets may be cached…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/JunaidAhamed-7777/release-sieve" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repository includes the browser workbench, CLI, model-free Git exporter, synthetic fixtures, reports, tests, and license notices. Try the CLI example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/JunaidAhamed-7777/release-sieve.git
&lt;span class="nb"&gt;cd &lt;/span&gt;release-sieve
npm ci &lt;span class="nt"&gt;--ignore-scripts&lt;/span&gt;
npm run bootstrap
npm run demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;demo/output/audit.html&lt;/code&gt;. Setup requires network access; later CLI audits use verified local weights with remote loading disabled. &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve#readme" rel="noopener noreferrer"&gt;The README&lt;/a&gt; covers Git ranges, browser imports, requirements, and an optional review exit code for automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The central AI component is the &lt;strong&gt;Apache-2.0 all-MiniLM-L6-v2&lt;/strong&gt; sentence encoder. &lt;strong&gt;Transformers.js and ONNX Runtime&lt;/strong&gt; run the same pinned Xenova q8 export through local CPU inference or browser WebAssembly. Its normalized &lt;strong&gt;384-dimensional&lt;/strong&gt; vectors relate developer wording to customer wording.&lt;/p&gt;

&lt;p&gt;The process is small:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read a selected Git range or supplied JSON, then extract bounded notes for one release.&lt;/li&gt;
&lt;li&gt;Suggest conventional &lt;code&gt;docs&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, and similar labels as internal changes. Inspect these suggestions too.&lt;/li&gt;
&lt;li&gt;Encode remaining messages and notes; rank candidates by cosine similarity.&lt;/li&gt;
&lt;li&gt;Accept an advisory association at score &lt;strong&gt;0.48&lt;/strong&gt; or above, with a runner-up gap of at least &lt;strong&gt;0.06&lt;/strong&gt;. Keep every breaking change in review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The app compares text; it neither examines patches nor generates release claims. A strong similarity score cannot establish factual agreement. Showing both close candidates and retaining breaking-change evidence makes that limitation visible.&lt;/p&gt;

&lt;p&gt;The worker verifies SHA-256 hashes before using assets; evidence stays out of network requests and browser caches. Git collection leaves the chosen checkout unchanged and does not execute its code. Filenames are visible evidence, not model input. The English-oriented model sees at most &lt;strong&gt;256 wordpieces per input&lt;/strong&gt;, with truncation disclosed. Markdown extraction preserves inline-code literals but omits headings and fenced examples.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/docs/VERIFICATION.md" rel="noopener noreferrer"&gt;Verification records&lt;/a&gt; cover real native/browser inference, exports, keyboard interaction, responsive layouts, cancellation, upload races, asset failures, and cache integrity. They also identify the limits of those checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open weights and an open runtime let a static site deliver semantic matching without receiving release evidence or operating an inference service. The CLI can perform later audits offline. No inference credential or per-request API charge is needed, although installation, downloads, and the user's compute have costs.&lt;/p&gt;

&lt;p&gt;Maintainers can inspect the pinned model revision, matching policy, evidence, fixtures, and source; host the app themselves; and reproduce a promising or mistaken association. A different encoder would require compatibility work and a new evaluation. The model is genuinely central: without its embeddings, this semantic comparison becomes a different algorithm.&lt;/p&gt;

&lt;p&gt;Original code and synthetic fixtures are &lt;strong&gt;MIT&lt;/strong&gt;; the model and Transformers.js are &lt;strong&gt;Apache-2.0&lt;/strong&gt;. &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/docs/MODEL_CARD.md" rel="noopener noreferrer"&gt;Model provenance&lt;/a&gt; and &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/docs/THIRD_PARTY.md" rel="noopener noreferrer"&gt;third-party notices&lt;/a&gt; credit the underlying work.&lt;/p&gt;

&lt;p&gt;This new project began on &lt;strong&gt;October 13, 2026&lt;/strong&gt;. The next commercial step is a willing maintainer testing a previously reviewed release, inspecting extra work and missed gaps before discussing a paid integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of GitHub Copilot — through GitHub Actions automation.&lt;/strong&gt; The &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;category description&lt;/a&gt; includes "automate your project with GitHub Actions."&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/blob/main/.github/workflows/ci.yml" rel="noopener noreferrer"&gt;workflow&lt;/a&gt; runs on pushes/PRs across &lt;strong&gt;Windows/Ubuntu × Node 22/26&lt;/strong&gt;, with read-only permissions and commit-pinned official actions. Each job installs locked dependencies, tests the application, verifies the model, builds the browser distribution, checks fetch-forbidden native inference, and exercises Git-to-report execution. &lt;a href="https://github.com/JunaidAhamed-7777/release-sieve/actions/runs/38452234959" rel="noopener noreferrer"&gt;All four jobs passed at &lt;code&gt;f109c12&lt;/code&gt;&lt;/a&gt;. Browser automation was verified locally. This category entry uses Actions; it does not claim Copilot authored the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI disclosure:&lt;/strong&gt; AI-assisted.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
