<?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: Jiangshan</title>
    <description>The latest articles on DEV Community by Jiangshan (@jiangshan118).</description>
    <link>https://dev.to/jiangshan118</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%2F4064074%2F0ab6c2a8-7354-449d-bf0a-3c4da3a324aa.jpg</url>
      <title>DEV Community: Jiangshan</title>
      <link>https://dev.to/jiangshan118</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jiangshan118"/>
    <language>en</language>
    <item>
      <title>Building a Source-Linked Codex Reset Tracker Without Reading User Accounts</title>
      <dc:creator>Jiangshan</dc:creator>
      <pubDate>Sun, 27 Sep 2026 11:09:13 +0000</pubDate>
      <link>https://dev.to/jiangshan118/building-a-source-linked-codex-reset-tracker-without-reading-user-accounts-2j4j</link>
      <guid>https://dev.to/jiangshan118/building-a-source-linked-codex-reset-tracker-without-reading-user-accounts-2j4j</guid>
      <description>&lt;p&gt;If you build a status page for a developer tool, it is tempting to turn one public post into a precise answer for every user. That is exactly where a reset tracker can become misleading.&lt;/p&gt;

&lt;p&gt;Codex reset language can describe at least three different things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a personal 5-hour or weekly allowance;&lt;/li&gt;
&lt;li&gt;a public or global event for a stated eligible scope;&lt;/li&gt;
&lt;li&gt;banked reset credit for an eligible account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those signals should not be merged. A personal allowance is visible in the user's &lt;strong&gt;Settings → Usage&lt;/strong&gt; page. A public announcement is evidence about an event, not proof that the event has finished for every account. A banked reset is stored credit, not proof of a global reset.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://codexreset.live/codex-reset-time?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=source-linked-tracker" rel="noopener noreferrer"&gt;Codex Reset Live&lt;/a&gt; around that boundary: link each public claim to its source, expose the state we can actually support, and leave private account timing to the account owner.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful distinction: public evidence versus private state
&lt;/h2&gt;

&lt;p&gt;The tracker answers a narrow question: “What public reset signal can I verify right now?”&lt;/p&gt;

&lt;p&gt;It does not answer: “When will my account reset?” That answer belongs to the account's own usage view. The site has no private-account access, so it cannot read, infer, or guarantee a personal reset time.&lt;/p&gt;

&lt;p&gt;This distinction also prevents a common error in status pages: treating an announcement as completion. The tracker keeps &lt;code&gt;ANNOUNCED&lt;/code&gt; separate from &lt;code&gt;YES&lt;/code&gt;. A possible signal can be useful without being promoted to a confirmed result.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small architecture for evidence-linked status
&lt;/h2&gt;

&lt;p&gt;The production monitor is a Cloudflare Worker with a five-minute Cron trigger. Each scheduled run checks public sources that are allowed by the monitor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the public OpenAI status summary endpoint;&lt;/li&gt;
&lt;li&gt;the configured public X profile feed used for reset signals.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For each source, the Worker records the observed time and a finding such as &lt;code&gt;confirmed&lt;/code&gt;, &lt;code&gt;possible&lt;/code&gt;, &lt;code&gt;no_signal&lt;/code&gt;, or &lt;code&gt;source_error&lt;/code&gt;. It then applies simple classification rules to the text. A qualifying completion phrase can produce a confirmed global signal; an announcement or promise remains a possible signal that needs manual confirmation.&lt;/p&gt;

&lt;p&gt;The current state is stored in Cloudflare KV and served through a public &lt;code&gt;/api/status&lt;/code&gt; endpoint. The frontend can show the current code, reason, source URL, observation time, and monitor health without exposing any secret or account data.&lt;/p&gt;

&lt;p&gt;The important part is not the number of components. It is the evidence path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public source
    -&amp;gt; source fetch + timestamp
    -&amp;gt; finding classification
    -&amp;gt; status state
    -&amp;gt; source-linked public page
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why the status states matter
&lt;/h2&gt;

&lt;p&gt;The monitor uses conservative states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;YES&lt;/code&gt;: a global reset signal was confirmed;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ANNOUNCED&lt;/code&gt;: a public signal exists, but completion still needs confirmation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NOT YET&lt;/code&gt;: no confirmed global reset has been posted today;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;UNKNOWN&lt;/code&gt;: the public sources could not be checked reliably.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Banked evidence is kept separate and cannot create a global &lt;code&gt;YES&lt;/code&gt;. If all sources fail, the monitor reports degraded health or &lt;code&gt;UNKNOWN&lt;/code&gt; instead of silently guessing from an old date.&lt;/p&gt;

&lt;p&gt;This is a small but useful design rule for developer-facing status tools: represent uncertainty as data. A cached success, a public promise, and a confirmed completion are not interchangeable states.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this tracker deliberately does not do
&lt;/h2&gt;

&lt;p&gt;It does not log into Codex, inspect cookies, read private usage, or claim to know an individual user's reset time. It also does not claim that every announced reset reached every eligible account. Those checks require the user's own &lt;strong&gt;Settings → Usage&lt;/strong&gt; page and the exact scope of the public event.&lt;/p&gt;

&lt;p&gt;If you are waiting for a personal reset, check your account first. If you are investigating a public event, follow the original source and its current state. If you are checking a banked reset, treat it as stored account credit rather than a universal reset clock.&lt;/p&gt;

&lt;p&gt;The live tracker is here: &lt;a href="https://codexreset.live/codex-reset-time?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=source-linked-tracker" rel="noopener noreferrer"&gt;Codex Reset Live — reset timing and source-linked status&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway for builders
&lt;/h2&gt;

&lt;p&gt;When a status page depends on public posts, the best feature may be a precise boundary, not another prediction. Keep public announcements, confirmed completion, personal timing, and banked credit as separate concepts. Attach the original source to the state. Show when the source was observed. Preserve &lt;code&gt;UNKNOWN&lt;/code&gt; when the monitor cannot check.&lt;/p&gt;

&lt;p&gt;That makes a small tracker more honest—and more useful—than a page that displays one confident reset time for everyone.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>I made a small website to check Codex reset</title>
      <dc:creator>Jiangshan</dc:creator>
      <pubDate>Fri, 25 Sep 2026 02:28:19 +0000</pubDate>
      <link>https://dev.to/jiangshan118/i-built-a-small-tracker-because-codex-reset-posts-were-easy-to-misunderstand-3f3b</link>
      <guid>https://dev.to/jiangshan118/i-built-a-small-tracker-because-codex-reset-posts-were-easy-to-misunderstand-3f3b</guid>
      <description>&lt;p&gt;Hi, I made this small website because I often go X to check if Codex reset.&lt;/p&gt;

&lt;p&gt;But I found many posts use the word “reset”, and maybe they talk about different thing. Sometimes it is personal reset time. Sometimes many users get a public reset. Sometimes it is banked reset.&lt;/p&gt;

&lt;p&gt;They are not same, so I try to make it more clear.&lt;/p&gt;

&lt;p&gt;I made &lt;a href="https://codexreset.live/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=reset-types-post" rel="noopener noreferrer"&gt;Codex Reset Live&lt;/a&gt;. It puts latest public reset news, original source, reset time and history in one page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal reset time
&lt;/h2&gt;

&lt;p&gt;Personal reset time is from your own account. You can check &lt;strong&gt;Settings → Usage&lt;/strong&gt; to see your 5-hour or weekly reset time.&lt;/p&gt;

&lt;p&gt;Other people screenshot cannot tell your exact time. My website also cannot read it. I only made a small local timer. You put the time by yourself, and it stays in your browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public or global reset
&lt;/h2&gt;

&lt;p&gt;This is a public announcement or confirmed reset for eligible users.&lt;/p&gt;

&lt;p&gt;For this kind of news, I save the time and original source. If I cannot confirm it, the website will not say “YES”. It will show &lt;strong&gt;NOT YET&lt;/strong&gt;, &lt;strong&gt;PENDING REVIEW&lt;/strong&gt;, or &lt;strong&gt;UNKNOWN&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I think source is important, because one X post can be shared many times and look like new news.&lt;/p&gt;

&lt;h2&gt;
  
  
  Banked reset
&lt;/h2&gt;

&lt;p&gt;Banked reset is a reset credit saved in an eligible account. You may use it before it expires.&lt;/p&gt;

&lt;p&gt;But banked reset does not mean everyone got a global reset. This is one thing I saw many people confuse, so I show it separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I made it simple
&lt;/h2&gt;

&lt;p&gt;I do not want use old reset dates to guess the next exact day. History is not a promise.&lt;/p&gt;

&lt;p&gt;Now the website only does some simple things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;show latest public reset signal;&lt;/li&gt;
&lt;li&gt;link the original source;&lt;/li&gt;
&lt;li&gt;keep reset history;&lt;/li&gt;
&lt;li&gt;explain different reset types;&lt;/li&gt;
&lt;li&gt;send new signal to Telegram.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is free and no signup needed. It cannot see anyone personal usage limit, and it is not affiliated with OpenAI.&lt;/p&gt;

&lt;p&gt;If you also use Codex, you can &lt;a href="https://codexreset.live/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=reset-types-post" rel="noopener noreferrer"&gt;take a look&lt;/a&gt;. Please tell me what is not clear or what I should add.&lt;/p&gt;

&lt;p&gt;I am still learning and improving it. Thank you very much :)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
