<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; //trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Wed, 07 Oct 2026 02:26:22 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Thu, 17 Sep 2026 13:13:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37673 – Hold the browser lane around the oppo/realme/motorola drivers  Takes ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hold the browser lane around the oppo/realme/motorola drivers&lt;br /&gt;
&lt;br /&gt;
Takes BrowserLane (common r37672) before new ChromeDriver and releases it after&lt;br /&gt;
quit() returns -- the 850MB is resident for the whole chunk, not just at&lt;br /&gt;
startup, so bracketing only the constructor would protect nothing.&lt;br /&gt;
&lt;br /&gt;
Five minutes of waiting, then give up and return what we have: the only things&lt;br /&gt;
that can hold the lane that long are the other brand mid-chunk or the knowlarity&lt;br /&gt;
scrape in the fofo tomcat, and giving up costs nothing because an unstamped imei&lt;br /&gt;
stays pending and the lane&apos;s next turn picks it up.&lt;br /&gt;
&lt;br /&gt;
CheckMotorolaWarrantyTask carries a comment saying &apos;do not let this job overlap&lt;br /&gt;
the oppo/realme window&apos; that nothing ever enforced. It is wired here too so it is&lt;br /&gt;
already safe whenever it gets a trigger -- it still has none today.&lt;br /&gt;
&lt;br /&gt;
Note on sizing, since the obvious knob is the wrong one: shrinking CHUNK from 25&lt;br /&gt;
was evaluated and rejected. The idle window is a fixed 20s bolted onto a variable&lt;br /&gt;
work period, so 25-&gt;10 moves the duty cycle only 96% -&gt; 91% while costing 8.4%&lt;br /&gt;
of daily throughput and 2.5x the driver launches. The lever for duty cycle is the&lt;br /&gt;
fixedDelay gap, not the chunk size.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckMotorolaWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37673</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37673</guid></item>
<item><pubDate>Mon, 31 Aug 2026 16:08:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37472 – IMEI activation: one snapshotted daily pass per brand, on one ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 12 file(s) modified&lt;/strong&gt;&lt;br/&gt;IMEI activation: one snapshotted daily pass per brand, on one thread, with per-brand metrics&lt;br /&gt;
&lt;br /&gt;
Four @Scheduled jobs every 5 minutes become two daily passes. Oppo and realme&lt;br /&gt;
share one thread and alternate in 25-imei chunks, so exactly one ChromeDriver is&lt;br /&gt;
alive at a time instead of four; vivo keeps its own thread since it is direct&lt;br /&gt;
HTTP and does not contend for a browser.&lt;br /&gt;
&lt;br /&gt;
The pass snapshots its pool before any browser starts and walks that list to the&lt;br /&gt;
end. It never re-queries, and that is the actual fix. A failed lookup never&lt;br /&gt;
reaches dateMap.put, so no row is written, so createTimestamp is not bumped, so&lt;br /&gt;
the imei was eligible again on the next tick five minutes later. Measured 29-Aug:&lt;br /&gt;
realme issued 4,524 requests against 1,004 distinct imeis -- 4.5 asks each, 78%&lt;br /&gt;
of the day&apos;s budget spent re-asking -- while oppo, which rarely fails, sat at&lt;br /&gt;
1.03. More requests hardened the block, which caused more failures. A pass bounds&lt;br /&gt;
that: a failure costs one retry tomorrow, never one in five minutes.&lt;br /&gt;
&lt;br /&gt;
This supersedes the r37447/r37448/r37449 argument about driver count, which was&lt;br /&gt;
about the wrong variable. That argument blamed realme&apos;s collapse on CPU&lt;br /&gt;
contention pushing the captcha render past the element waits. The logs do not&lt;br /&gt;
support it: on 29-Aug oppo took ZERO canvas timeouts across all 24 hours on the&lt;br /&gt;
same box, same six cores, same driver count, same captcha vendor, load average&lt;br /&gt;
0.9 -- including the 15:00-23:00 window in which realme solved nothing at all.&lt;br /&gt;
Realme&apos;s own canvas wait is 15s against oppo&apos;s 8s, so the longer wait is the one&lt;br /&gt;
expiring. What realme&apos;s timeout rate tracks is its own daily request volume, and&lt;br /&gt;
it resets at midnight: 920/day -&gt; 0.3%, 3,467/day -&gt; 28%, 4,524/day -&gt; 75%. That&lt;br /&gt;
is realme.com declining to serve the widget.&lt;br /&gt;
&lt;br /&gt;
DAYS=0 is deliberate and is not an off-by-one: the pool filter is&lt;br /&gt;
createTimestamp &amp;lt; now().atStartOfDay().minusDays(DAYS), so DAYS=1 measures&lt;br /&gt;
against yesterday midnight and silently yields a two-day cadence, which is what&lt;br /&gt;
oppo and realme were running.&lt;br /&gt;
&lt;br /&gt;
Sizing measured on prod for a midnight start: oppo 4,133 and realme 2,118 imeis,&lt;br /&gt;
11.7h + 8.4h = 20.1 hours of a single thread. It fits with no slack; if the&lt;br /&gt;
&apos;pass finished&apos; counts come in short of &apos;pass starting&apos;, the lever is DAYS=1&lt;br /&gt;
rather than a second thread.&lt;br /&gt;
&lt;br /&gt;
Observability: ImeiActivationGauges publishes the funnel per brand on&lt;br /&gt;
/actuator/prometheus, which alloy already scrapes on this host -- due, churned,&lt;br /&gt;
captcha_shown, captcha_solved, answered, dates_found, errors, run_seconds and&lt;br /&gt;
last_finish_epoch. Each stage fails differently and says what broke. Rates are&lt;br /&gt;
left to PromQL. The stage that matters for health is answered: churned&gt;0 with&lt;br /&gt;
answered==0 is precisely the shape of both silent outages this year (oppo wrote&lt;br /&gt;
nothing for a week; the vivo captcha solver was dead for 46 days). dates_found is&lt;br /&gt;
deliberately NOT a health signal -- when the multi-year backlog drained at the&lt;br /&gt;
end of August, yield fell from ~100% to 2-3% on the same day across all three&lt;br /&gt;
brands with nothing broken.&lt;br /&gt;
&lt;br /&gt;
Nagios cleanup: the Nagios server and every NRPE daemon are gone, so&lt;br /&gt;
WriteToPropertiesFile and the commented-out blocks that fed&lt;br /&gt;
nagios-cron.properties are deleted, and NagiosMonitorTasks is renamed&lt;br /&gt;
BalanceMonitorTasks for the transport it actually uses. Noted there that nothing&lt;br /&gt;
calls it -- there is no @Scheduled entry and no other caller -- which is why both&lt;br /&gt;
balance gauges have always read -1.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/BalanceGauges.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/BalanceMonitorTasks.java &lt;i&gt;(copied from /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java@37471)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/ImeiActivationGauges.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/properties/WriteToPropertiesFile.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37472</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37472</guid></item>
<item><pubDate>Thu, 27 Aug 2026 20:27:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37446 – Per-brand batch sizes, and stop chrome forking a GPU process ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Per-brand batch sizes, and stop chrome forking a GPU process it cannot use&lt;br /&gt;
&lt;br /&gt;
maxResults was hardcoded in the shared repository methods, so Oppo and Vivo were&lt;br /&gt;
forced to the same secondary batch (10) and all three to the same tertiary (10).&lt;br /&gt;
It is now a parameter, set per brand at the call site.&lt;br /&gt;
&lt;br /&gt;
Sizing is arithmetic, from measured IN-BATCH per-imei time. Solving&lt;br /&gt;
M * 86400 / (300 + M*t) = needed/day:&lt;br /&gt;
&lt;br /&gt;
  brand    needed/day   t       M required   set to&lt;br /&gt;
  Vivo         9,407    0.8s        36         50    clears, ~12,700/day&lt;br /&gt;
  Realme       1,973   13.4s        10         10    was 5 = ~1,177/day, short&lt;br /&gt;
  Oppo         4,798   14.6s        88         10    HELD, see below&lt;br /&gt;
&lt;br /&gt;
Correcting an earlier measurement of mine: I reported Vivo at 13.6s per imei and&lt;br /&gt;
concluded its backlog could not be cleared. That averaged across the ~300s idle&lt;br /&gt;
gaps BETWEEN batches. In-batch it is 0.8s -- Vivo is 17x faster than I said, is&lt;br /&gt;
idle ~97% of the time, and 50 clears its pool comfortably. There is no wait in&lt;br /&gt;
the Vivo path; it is simply fast.&lt;br /&gt;
&lt;br /&gt;
Oppo is deliberately NOT raised. At 14.6s it would need M=88, which means&lt;br /&gt;
20-minute batches and near-permanent chrome sessions. But that 14.6s predates the&lt;br /&gt;
retry cap (r37445), which cuts exhausted imeis from 20 attempts to 7 and should&lt;br /&gt;
drop it sharply. Re-measure before sizing Oppo, rather than guessing high on a&lt;br /&gt;
box with 3GB free.&lt;br /&gt;
&lt;br /&gt;
Also: --disable-gpu, --disable-dev-shm-usage, --disable-software-rasterizer on&lt;br /&gt;
both selenium tasks. Headless needs no GPU yet chrome forks a gpu-process per&lt;br /&gt;
browser -- 6 were alive across the fleet, pure overhead. No behaviour change.&lt;br /&gt;
&lt;br /&gt;
Batch size does not raise peak concurrency (fixedDelay means one batch per job at&lt;br /&gt;
a time, so never more than 4 drivers). It raises DUTY CYCLE, which converts&lt;br /&gt;
chrome&apos;s footprint from intermittent to sustained. That matters here: tomcat is&lt;br /&gt;
9.4GB, available is ~3GB, and the two OOM kills this month both took tomcat.&lt;br /&gt;
&lt;br /&gt;
Cron-only deploy. The dao signature change has no callers outside cron.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37446</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37446</guid></item>
<item><pubDate>Thu, 27 Aug 2026 18:47:45 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37445 – Oppo/Realme: cap captcha retries per tick at 7 and 12, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme: cap captcha retries per tick at 7 and 12, measured per brand&lt;br /&gt;
&lt;br /&gt;
Most captcha work goes to imeis that never succeed. Measured over the last&lt;br /&gt;
window: oppo 6,245 attempts for 308 successes, realme 13,842 for 399. The bulk&lt;br /&gt;
is imeis grinding all 20 attempts in one already-refused session and getting&lt;br /&gt;
nothing -- oppo 279 of them, realme 610.&lt;br /&gt;
&lt;br /&gt;
The imei is NOT abandoned. A captcha failure is a technical failure, not an&lt;br /&gt;
answer, so it stays pending and the next tick retries it in ~5 minutes with a&lt;br /&gt;
fresh page and session -- which the data suggests beats continuing in a session&lt;br /&gt;
the widget has refused seven times. This caps grinding, not retrying.&lt;br /&gt;
&lt;br /&gt;
Per-brand caps, because the distributions genuinely differ:&lt;br /&gt;
&lt;br /&gt;
  OPPO cap 7    97.7% of successes kept, 58.4% of work saved (3,648 attempts)&lt;br /&gt;
    Pre-glide, 33% of oppo&apos;s successes came from attempts 8-20 and 20 was the&lt;br /&gt;
    right number. Post-glide (r37440) that is 2%: the drag lands first or second&lt;br /&gt;
    try. cap 5 keeps 95.5%/saves 67.7%, cap 10 keeps 99.0%/saves 44.8%.&lt;br /&gt;
&lt;br /&gt;
  REALME cap 12  96.0% kept, 35.7% saved (4,937 attempts)&lt;br /&gt;
    NOT 7. Realme has no glide, so its successes still spread to attempt 10+ and&lt;br /&gt;
    a cap of 7 would cost it 16.5%. It also burns more than twice oppo&apos;s work, so&lt;br /&gt;
    the gentler cap still saves more in absolute terms.&lt;br /&gt;
&lt;br /&gt;
Combined: 8,585 of 20,087 attempts saved, ~43% less browser work, for ~3% fewer&lt;br /&gt;
successes per tick -- and those imeis come back next tick anyway. Less Chrome&lt;br /&gt;
work matters on this box: it co-hosts a 9.4GB tomcat, has 3.5GB free and has been&lt;br /&gt;
OOM-killed twice this month.&lt;br /&gt;
&lt;br /&gt;
The two caps are independent constants and must not be synced. If glide is ported&lt;br /&gt;
to realme, expect its curve to shift left as oppo&apos;s did and its cap can drop to&lt;br /&gt;
~7 -- but measure it, do not assume it.&lt;br /&gt;
&lt;br /&gt;
Windows are ~2h (oppo&apos;s only ~30 min post-glide), so the right numbers may drift.&lt;br /&gt;
Worth re-reading the attempt histogram after a full day.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37445</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37445</guid></item>
<item><pubDate>Thu, 27 Aug 2026 06:11:22 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37435 – Oppo/Realme: always release the slider; 79% of presses were left ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme: always release the slider; 79% of presses were left held&lt;br /&gt;
&lt;br /&gt;
Found by following the observation that the dragger repositions itself on click.&lt;br /&gt;
&lt;br /&gt;
clickAndHold() is issued at the top of every attempt, but release() sits inside&lt;br /&gt;
the moveByOffset &gt; 0 branch. An attempt that fails circle detection, or produces&lt;br /&gt;
an unusable calibration, therefore leaves the mouse button DOWN.&lt;br /&gt;
&lt;br /&gt;
Measured over 21 minutes of production:&lt;br /&gt;
&lt;br /&gt;
  Oppo    506 presses, 107 released -&gt; 399 never released = 79%&lt;br /&gt;
  Realme  247 presses,  58 released -&gt; 189 never released = 77%&lt;br /&gt;
&lt;br /&gt;
Actions is one instance per driver, created OUTSIDE the imei loop, so the stuck&lt;br /&gt;
press does not end with the attempt -- it leaks into the next attempt and on into&lt;br /&gt;
the next imei. The following clickAndHold then lands on an already-held button,&lt;br /&gt;
so the widget never repositions the handle and the drag simply continues from&lt;br /&gt;
wherever the pointer was abandoned.&lt;br /&gt;
&lt;br /&gt;
That matches what the logs show. Validated locally against both live widgets:&lt;br /&gt;
a clean press repositions the handle +22px on the first pixel of movement (half&lt;br /&gt;
the 45px handle: moveToElement centres the pointer, the widget aligns to it), and&lt;br /&gt;
the transfer is then linear -- 1.10 piece px per mouse px on oppo, 1.20 on realme.&lt;br /&gt;
Production instead shows a jump of +0px on 31 oppo attempts and -34..-41px on&lt;br /&gt;
another 39, and oppo starts 13% of attempts with margin-left already &gt;= 30px&lt;br /&gt;
(mean 9.2px) against realme&apos;s 0% (mean 3.2px). Those are the fingerprints of a&lt;br /&gt;
drag resuming rather than starting.&lt;br /&gt;
&lt;br /&gt;
Tracks the press in a flag and releases on every exit: before the retry refresh,&lt;br /&gt;
and again after the loop so the widget-not-found break cannot carry a held button&lt;br /&gt;
into the next imei. Release is wrapped, so a failure to release is logged rather&lt;br /&gt;
than killing the batch.&lt;br /&gt;
&lt;br /&gt;
Ruled out while getting here, so as not to re-chase: the reposition is NOT an&lt;br /&gt;
animation race (position is stable from t=0 to 1s despite transition:all), and it&lt;br /&gt;
is NOT asymmetric between the brands -- both snap +22px identically, so this bug&lt;br /&gt;
does not by itself explain oppo 14% vs realme 64%. Both brands should improve.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37435</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37435</guid></item>
<item><pubDate>Thu, 27 Aug 2026 03:19:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37433 – Oppo/Realme: split the slider tuning, and give Oppo its own ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme: split the slider tuning, and give Oppo its own failure verdict&lt;br /&gt;
&lt;br /&gt;
The two classes drive the same dingxiang widget and have been edited in lockstep,&lt;br /&gt;
but they do not behave alike: measured over the last 11 hours as successes per&lt;br /&gt;
completed drag, oppo runs 11-17% and realme 60%. A change proven on one is not&lt;br /&gt;
evidence for the other, so the tuning constants are now documented as per-brand&lt;br /&gt;
and must not be synced.&lt;br /&gt;
&lt;br /&gt;
Correcting the record while I am here: oppo has NOT regressed. Earlier &quot;43%&quot; and&lt;br /&gt;
&quot;48%&quot; figures were successes over FAILURES, and a small widget-verdict sample --&lt;br /&gt;
not successes over drags. On the consistent denominator oppo has been 12-15%&lt;br /&gt;
throughout, across r37422, r37424 and r37432 alike.&lt;br /&gt;
&lt;br /&gt;
Oppo: ASSUMED_RATIO 1.7 -&gt; 0.67.&lt;br /&gt;
&lt;br /&gt;
  It only sizes the calibration probe: nudge ~= gap / (2 * ratio), intended to&lt;br /&gt;
  close half the gap. 1.7 came from one hand measurement. Production says&lt;br /&gt;
  otherwise -- 3,694 oppo calibrations average 0.67 (realme 0.70 over 1,683), so&lt;br /&gt;
  the probe has been closing about a fifth of the gap, not a half, and the ratio&lt;br /&gt;
  is then derived from that needlessly small and noisy sample. Mean gap is 120px&lt;br /&gt;
  for both, and 28% of oppo calibrations already overshoot.&lt;br /&gt;
&lt;br /&gt;
Oppo: log the captcha widget&apos;s verdict on the failure branch.&lt;br /&gt;
&lt;br /&gt;
  Realme has carried this since r37428 and oppo never did, which is why realme&apos;s&lt;br /&gt;
  failures name POSITION_MISMATCH and oppo&apos;s 85% say nothing. Without it there is&lt;br /&gt;
  no way to tell a bad drag from a widget that never rendered.&lt;br /&gt;
&lt;br /&gt;
Realme: comment only, no behaviour change. Its ratio is wrong in the same way,&lt;br /&gt;
but it is wrong while converting 60%, so oppo carries the corrected value first&lt;br /&gt;
and realme follows only if it helps.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37433</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37433</guid></item>
<item><pubDate>Thu, 27 Aug 2026 00:33:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37431 – Realme/Oppo: capture the lookup off Response.prototype, not window.fetch  Realme ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Realme/Oppo: capture the lookup off Response.prototype, not window.fetch&lt;br /&gt;
&lt;br /&gt;
Realme solves its captcha well -- the widget&apos;s own verify endpoint says&lt;br /&gt;
success:true on 526 of 829 attempts, 63% -- and records nothing. Every one of&lt;br /&gt;
those solved captchas is logged as &quot;Failed&quot; and the imei re-queued.&lt;br /&gt;
&lt;br /&gt;
The lookup is not missing, it is invisible. realme&apos;s client calls Nuxt&apos;s $fetch&lt;br /&gt;
(ofetch), which takes its reference to globalThis.fetch when its bundle is&lt;br /&gt;
evaluated. That happens before driver.get() returns, so by the time&lt;br /&gt;
installResponseCapture wraps window.fetch the client is already holding the&lt;br /&gt;
original. r37425 added that wrapper and could never have worked.&lt;br /&gt;
&lt;br /&gt;
Verified on the live page: the same $fetch request is invisible to a&lt;br /&gt;
window.fetch wrapper and visible to a Response.prototype one.&lt;br /&gt;
&lt;br /&gt;
Response.prototype.json/.text are resolved per call, so patching them catches&lt;br /&gt;
any client whenever it took its fetch reference -- the same reason the&lt;br /&gt;
XMLHttpRequest.prototype.open patch has always worked (it is how the captcha&lt;br /&gt;
verdict gets captured today).&lt;br /&gt;
&lt;br /&gt;
The clone is read with the ORIGINAL reader. Calling the patched one recurses&lt;br /&gt;
forever and hangs the page; that is not theoretical, it hung a test run.&lt;br /&gt;
&lt;br /&gt;
Applied to Oppo as well. Its XHR path works today (673 lookups, 0 missed), so&lt;br /&gt;
this is defence against the same trap following any migration -- which is what&lt;br /&gt;
r37425 was reaching for and did not achieve.&lt;br /&gt;
&lt;br /&gt;
Expected: Realme goes from 0 rows to roughly its captcha rate. Unchanged:&lt;br /&gt;
59% of attempts still never find the circles, same ceiling as Oppo.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37431</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37431</guid></item>
<item><pubDate>Wed, 26 Aug 2026 20:19:02 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37430 – Realme: widen the lookup match and report what the page ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Realme: widen the lookup match and report what the page actually called&lt;br /&gt;
&lt;br /&gt;
The captcha is being solved -- the widget returns success:true with a token --&lt;br /&gt;
but the lookup response is never captured, so awaitResponse times out and every&lt;br /&gt;
attempt records as failed. 19 &apos;success&apos; against 53 &apos;failed&apos; this hour with 0&lt;br /&gt;
lookups, while the widget&apos;s own verdicts are mostly success:true.&lt;br /&gt;
&lt;br /&gt;
Matches on the customer-api host as well as the active/check path, in case the&lt;br /&gt;
endpoint moved with the page rebuild. A failed attempt now also logs the&lt;br /&gt;
non-captcha URLs the page did call, so if it is still missed the log names what&lt;br /&gt;
to match on rather than leaving it to guesswork.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37430</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37430</guid></item>
<item><pubDate>Wed, 26 Aug 2026 19:59:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37428 – Oppo/Realme: record the captcha widget&apos;s own verdict alongside the lookup ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme: record the captcha widget&apos;s own verdict alongside the lookup&lt;br /&gt;
&lt;br /&gt;
r37426 made the lookup response the success signal, which is authoritative but&lt;br /&gt;
silent about WHY a drag was refused -- a timeout looks identical whether the aim&lt;br /&gt;
was wrong, the widget never rendered, or the page changed again.&lt;br /&gt;
&lt;br /&gt;
The captcha widget answers that itself: it calls captcha-ind-sec.heytapmobile.com&lt;br /&gt;
and its replies carry a status and message. The hook now keeps the last such&lt;br /&gt;
response, and a failed attempt logs it, so &apos;Failed = 3&apos; becomes &apos;Failed = 3&lt;br /&gt;
(captcha said: ...)&apos;.&lt;br /&gt;
&lt;br /&gt;
Note what the widget does NOT give us: its init call returns the puzzle&apos;s y&lt;br /&gt;
coordinate but not the x, which is the secret being protected. So the circle&lt;br /&gt;
detection still has to find the horizontal target -- there is no shortcut there,&lt;br /&gt;
and that remains the largest loss (60% of Oppo attempts never find the circles).&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37428</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37428</guid></item>
<item><pubDate>Wed, 26 Aug 2026 19:40:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37426 – Realme: treat the lookup response, not a missing error element, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Realme: treat the lookup response, not a missing error element, as success&lt;br /&gt;
&lt;br /&gt;
After r37425 Realme logged 27 &apos;Success at attempt&apos; and 27 &apos;no active/check&lt;br /&gt;
response captured&apos; in the same window, and wrote 0 rows. The hook was not at&lt;br /&gt;
fault -- reproduced locally, it captures both XHR and fetch correctly.&lt;br /&gt;
&lt;br /&gt;
Success was being inferred from the ABSENCE of dx_captcha_basic_bar-inform:&lt;br /&gt;
&lt;br /&gt;
    try   { wait5Sec.until(visibilityOf(bar-inform)); log(&apos;Failed&apos;) }&lt;br /&gt;
    catch { log(&apos;Success&apos;) }&lt;br /&gt;
&lt;br /&gt;
realme rebuilt this page, so that element may no longer exist. The wait then&lt;br /&gt;
always times out and EVERY attempt reports success while the captcha was never&lt;br /&gt;
solved, no lookup fired and nothing was captured. The 27/27/0 is that exactly.&lt;br /&gt;
&lt;br /&gt;
The response arriving is the only signal that actually proves the captcha&lt;br /&gt;
passed, so it now waits for that (polling, up to 8s) and treats its absence as a&lt;br /&gt;
failure worth retrying. This also removes the separate &apos;no response captured&apos;&lt;br /&gt;
branch, since reaching the success path now means the response is in hand.&lt;br /&gt;
&lt;br /&gt;
Oppo is left alone: its bar-inform detection is working (0 missed captures&lt;br /&gt;
against 673 lookups), so there is nothing to fix there.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37426</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37426</guid></item>
<item><pubDate>Wed, 26 Aug 2026 19:27:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37425 – Oppo/Realme: capture the response from fetch as well as XHR ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme: capture the response from fetch as well as XHR&lt;br /&gt;
&lt;br /&gt;
r37423 got Realme solving the captcha again -- 4 of 4 on the first tick after&lt;br /&gt;
deploy -- but every one logged &apos;Result shown but no active/check response&lt;br /&gt;
captured&apos;. The capture hook only wrapped XMLHttpRequest, and realme&apos;s page issues&lt;br /&gt;
the lookup through fetch, so it recorded nothing and each imei was stored with a&lt;br /&gt;
null date.&lt;br /&gt;
&lt;br /&gt;
The hook now wraps window.fetch too, cloning the response before reading it so&lt;br /&gt;
the page still consumes its own body. Applied to Oppo as well: its XHR path is&lt;br /&gt;
working today, but the same silent failure would follow any move to fetch, and&lt;br /&gt;
the cost is a few lines.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37425</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37425</guid></item>
<item><pubDate>Wed, 26 Aug 2026 19:05:20 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37424 – Oppo/Realme slider captcha: size the calibration nudge from the gap ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Oppo/Realme slider captcha: size the calibration nudge from the gap&lt;br /&gt;
&lt;br /&gt;
r37422 replaced a 15px calibration nudge with a fixed 60px, which fixed the&lt;br /&gt;
under-measurement but introduced the opposite error. Production data over 764&lt;br /&gt;
calibrations shows 45% ended UNUSABLE (closed &amp;lt;= 0, i.e. the piece shot past the&lt;br /&gt;
hole and the measured gap grew instead of shrinking), and among gaps under 60px&lt;br /&gt;
it was 85%.&lt;br /&gt;
&lt;br /&gt;
The nudge is now sized from the gap -- aim to close about half of it -- and&lt;br /&gt;
clamped to [10,60]. Replaying the real observed gap distribution: unusable and&lt;br /&gt;
overshoot fall from 21% to 2%.&lt;br /&gt;
&lt;br /&gt;
The observed travel ratio in production is 1.13 circle px per slider px, against&lt;br /&gt;
1.68 measured locally; it varies with render scale, which is why the ratio is&lt;br /&gt;
still derived from the measurement. ASSUMED_RATIO only sizes the probe, and 1.7&lt;br /&gt;
errs toward a smaller nudge, which is the safe direction here.&lt;br /&gt;
&lt;br /&gt;
Oppo is currently solving 43% (was 9% before r37422). Realme carries the same&lt;br /&gt;
widget and the same defect and has not been deployed yet.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37424</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37424</guid></item>
<item><pubDate>Wed, 26 Aug 2026 18:59:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37423 – Realme warranty check: retarget the rebuilt page and read its ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Realme warranty check: retarget the rebuilt page and read its JSON&lt;br /&gt;
&lt;br /&gt;
Realme has recorded nothing since 24-Aug, the same day Oppo stopped. Driving the&lt;br /&gt;
page confirms why: it was rebuilt and every selector the code used is gone.&lt;br /&gt;
&lt;br /&gt;
  .sn-input      -&gt; the field is now .imei-input input (placeholder &apos;Please input IMEI&apos;)&lt;br /&gt;
  div.check-btn  -&gt; the submit is now an icon, .imei-input .search-icon&lt;br /&gt;
&lt;br /&gt;
So it failed even earlier than Oppo did -- it could not type the imei, let alone&lt;br /&gt;
reach the captcha, which is why the log showed only &apos;Initiating webdriver...&apos;.&lt;br /&gt;
&lt;br /&gt;
The result now comes from the JSON the page already receives&lt;br /&gt;
(customer-api.realme.com/in/active/check) rather than an XPath keyed off a label&lt;br /&gt;
that no longer exists. That old locator also had an &apos;| //h1[contains(@class,&lt;br /&gt;
title)]&apos; branch which would silently match a page heading and try to parse it as&lt;br /&gt;
a date. The API is explicit: expiryDate (yyyy.MM.dd) and an isActivation flag,&lt;br /&gt;
so nothing is inferred from message text.&lt;br /&gt;
&lt;br /&gt;
expiryDate is the WARRANTY EXPIRY, so a year is still subtracted -- warranty is&lt;br /&gt;
12 months as standard. Checked against our own records rather than assumed:&lt;br /&gt;
41,267 of 41,289 stored Realme activation dates precede the date we checked&lt;br /&gt;
them, averaging 13 days before, which is only consistent with the subtraction&lt;br /&gt;
already being correct.&lt;br /&gt;
&lt;br /&gt;
Ports the r37422 captcha fix verbatim -- identical dingxiang slider, identical&lt;br /&gt;
15px calibration nudge that made it land ~30px out against a ~30px hole. And as&lt;br /&gt;
with Oppo the outcome is always recorded, even as null: findElement THREW when&lt;br /&gt;
the element was missing, so nothing was written and the imei was re-queued every&lt;br /&gt;
5 minutes indefinitely.&lt;br /&gt;
&lt;br /&gt;
Also converts 29 System.out.println to the logger. The cron JVM&apos;s stdout is a&lt;br /&gt;
socket from the launching ssh session, so every diagnostic was going nowhere.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37423</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=37423</guid></item>
<item><pubDate>Sun, 17 May 2026 15:59:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36583 – Fix hardcoded captcha element IDs to dynamic xpath in Oppo ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix hardcoded captcha element IDs to dynamic xpath in Oppo and Realme warranty scrapers&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36583</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36583</guid></item>
<item><pubDate>Sun, 19 Apr 2026 07:58:05 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36306 – Batch processing: BatchScheduledTasks, helpers for offer/sellin/partnerLimit, CronBatchService, OpenCV fix for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Batch processing: BatchScheduledTasks, helpers for offer/sellin/partnerLimit, CronBatchService, OpenCV fix for Apple Silicon, CLI triggers&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CronBatchService.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OfferProcessingHelper.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/PartnerLimitHelper.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36306</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36306</guid></item>
<item><pubDate>Sun, 12 Apr 2026 10:26:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36253 – Separate secondary/tertiary IMEI activation crons for Vivo/Oppo/Realme, perf fixes: shared ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Separate secondary/tertiary IMEI activation crons for Vivo/Oppo/Realme, perf fixes: shared saveActivation, Response leak fixes, /tmp cleanup, OpenCV static init, early break, remove class-level @Transactional from StandAlone&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/RealmeImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36253</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=36253</guid></item>
<item><pubDate>Fri, 20 Jun 2025 15:21:50 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34681 – Fixed</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34681</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34681</guid></item>
<item><pubDate>Fri, 20 Jun 2025 15:18:56 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34679 – Fixed</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34679</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34679</guid></item>
<item><pubDate>Tue, 15 Apr 2025 17:08:07 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34424 – Fixed Check Realme Warranty Task</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed Check Realme Warranty Task&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34424</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34424</guid></item>
<item><pubDate>Mon, 14 Apr 2025 19:08:16 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34420 – Added Realme Activation capture logic</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Realme Activation capture logic&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34420</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34420</guid></item>
<item><pubDate>Mon, 14 Apr 2025 18:01:46 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34419 – config</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;config&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34419</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34419</guid></item>
<item><pubDate>Mon, 14 Apr 2025 17:08:53 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34416 – Added Check Realme Warranty Task</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Check Realme Warranty Task&lt;/div&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java &lt;i&gt;(copied from /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java@34415)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/RealmeImeiActivationService.java &lt;i&gt;(copied from /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java@34415)&lt;/i&gt;&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34416</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34416</guid></item>
<item><pubDate>Mon, 14 Apr 2025 14:52:42 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34415 – Fixed oppo activation</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed oppo activation&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34415</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34415</guid></item>
<item><pubDate>Sun, 13 Apr 2025 17:39:29 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 34413 – Fixed oppo tracking issues</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed oppo tracking issues&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34413</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=34413</guid></item>
<item><pubDate>Thu, 15 Jun 2023 14:57:28 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 32148 – Fixed imeis handling</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed imeis handling&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=32148</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=32148</guid></item>
<item><pubDate>Wed, 14 Jun 2023 17:01:10 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 32146 – Added warranty task fix</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added warranty task fix&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=32146</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=32146</guid></item>
<item><pubDate>Tue, 07 Jun 2022 18:28:50 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30592 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30592</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30592</guid></item>
<item><pubDate>Mon, 02 May 2022 21:06:11 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30375 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30375</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30375</guid></item>
<item><pubDate>Mon, 02 May 2022 18:49:46 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30373 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30373</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30373</guid></item>
<item><pubDate>Fri, 29 Apr 2022 16:40:30 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30360 – Fixed logic for oppo activation</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed logic for oppo activation&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30360</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30360</guid></item>
<item><pubDate>Fri, 29 Apr 2022 15:26:57 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30359 – Fixed missing date logic</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed missing date logic&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30359</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30359</guid></item>
<item><pubDate>Thu, 28 Apr 2022 17:29:08 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30354 – Fixed ahead issue</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed ahead issue&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30354</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30354</guid></item>
<item><pubDate>Thu, 28 Apr 2022 15:17:32 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30352 – Fixed oppo</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed oppo&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30352</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30352</guid></item>
<item><pubDate>Mon, 18 Apr 2022 09:59:47 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30317 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30317</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30317</guid></item>
<item><pubDate>Sat, 26 Mar 2022 17:05:04 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30209 – Added Oppo Activation</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Oppo Activation&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/StandAlone.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30209</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCheckRealmeWarrantyTask.java&amp;rev=30209</guid></item>
</channel></rss>