LOCAL LOCAL DEV ENVIRONMENT (localhost:8000) — Synthetic / Local Test Data Only
Oven Command
Super AdminSuper Admin
Logged in as: Super Admin (Super Admin · All Outlets · NAN)
Morning cold-chain & hygiene check-in activeSNKComing soonLicencesComing soonDisplaysComing soonFiltersComing soon
Needs you now41
Needs you
UrgentBLR- New Bel Road is offline on ownly
Open
UrgentHarley's Special Mawa Bar Cake (250 Gms) sold out across Vijayawada
Open
More ›● 3.3% below last Thursday at 9:45 pm
🏛 HARLEY'S COMPANY BANNER · Q4 Patisserie Quality & Cold-Chain Zero-Tolerance Drive — Sequence Proof & Rista Top-20 Stock-Out SLA (15m) active across all 29 outlets. Directive O-047 · All Outlets
🚨 NUDGE ALERTS (2 CRITICAL · 3 IMPORTANT):
✓ Open & Ack
Showing: Today · All 4 Cities (29)
← Oven CommandFUDR × Harley’s — Product, UX & Integration Deep-ScanHOP Readout

FUDR × Harley’s — Product, UX & Integration Deep-Scan

ASK-25 · 22 October 2026 · Owner review required

Read-only evidence captured from approximately 14:19 IST; publication prepared 14:26 IST. Scan scope and gaps are stated below.

Verdict: useful customer-commerce foundation, with configuration defects to resolve before launch sign-off. Integration readiness and end-to-end customer journeys are not yet proven. This readout delivers authenticated HTTP, application-source, catalogue and outlet-API evidence. It is not a completed visual or transactional acceptance test.

The strongest confirmed findings are an invalid configured base outlet, a Bangalore/Mumbai city mapping collision, copied First Coffee configuration, inconsistent rewards eligibility wording, and large promotional assets. Fix and verify those before treating the demo as operationally ready. Keep the existing Central ODS hold and require a supported FUDR integration contract before building synchronization.

1. Scope, access and evidence limits

  • Target: Harley’s FUDR storefront. Supplied account: harley_demo; password redacted as fudr@***.
  • The root returned HTTP 401 with WWW-Authenticate: Basic realm="Client Area". The supplied credentials successfully returned HTTP 200. This is a site-access gate, not evidence of merchant privileges or customer login.
  • Requests were restricted to application pages, referenced static assets and source-defined read endpoints. No orders, carts, menu items, settings, customer records, OTPs, payments, coupons or stock states were created or changed. No offensive tests, fuzzing or vulnerability scan occurred.
  • Four requested entry paths (/login, /admin, /merchant, /dashboard) returned the same application shell structure and boot configuration. HTTP 200 on these paths does not establish that an admin console exists there.
  • A browser launch failed in the local runtime. Computer Use then rejected access to Google Chrome for Testing with “Computer Use was not approved to use Google Chrome for Testing.” No live 390px or 1440px screenshots, rendered tap measurements, browser network trace, LCP, CLS or INP were obtained. Asset images were inspected separately; they are not page screenshots.
  • Customer OTP login, checkout, order tracking against an actual order, merchant permissions and write behavior remain unverified. The demo credentials must not be described as customer or merchant authentication.
  • Evidence classes throughout: Observed = HTTP response or inspected asset; Source/config = delivered code or configuration, not proof of execution; Local requirement = project document; Proposed = recommendation; Unverified = unavailable evidence.

2. Prioritized findings and closure evidence

Priority is proposed: P1 before release/integration sign-off; P2 planned improvement. Owners are proposed roles, not assigned people.

ID / priorityEvidence and findingBusiness consequenceProposed owner / next actionRequired closure evidence
F01 · P1Config baseOutletId ends …94b43fd6. Its source-defined restaurant-detail read returns 400 Invalid restaurant id, including with the correct depth=all. JP Nagar returns 200 as a control. [E02/E04]Default menu/outlet resolution may fail or fall back incorrectly; actual UI path remains unverified.FUDR implementation lead: resolve the intended default outlet and reference lifecycle.Valid referenced outlet plus fresh-session homepage/menu evidence on desktop and mobile.
F02 · P1brandCities assigns the Mumbai city ID to both Mumbai.png and Bangalore.png. The cities API supplies a different Bangalore ID. [E02/E03]Missing/wrong imagery or city association; click routing impact depends on component logic and is not claimed as observed.Digital catalogue owner: use one canonical city ID per city.Unique IDs; each tile label, image and destination verified against six returned cities.
F03 · P1Resource copy says “Choose Your FC Spot”; generic appLinks target First Coffee; onboarding and footer assets reference First Coffee, with additional shared assets under another brand. Download nudges are configured false, so visibility is not established. [E02]Brand confusion and potential misdirection if those components are enabled. Shared generic icons alone are not proof of a defect.Brand/digital owner with FUDR: audit every reachable content variant and link.Harley’s-specific copy and destinations in active flows; no unrelated brand promotion; retained shared assets explicitly accepted.
F04 · P1Rewards configuration uses membership minimum net order value 999; FAQ says ₹1,000 or more. [E02]Eligibility disputes and staff explanations that disagree with the rule.Loyalty commercial owner: choose the exact threshold and amount basis, update copy.Approved boundary cases at ₹998/₹999/₹1,000, discounts and tax handling in a vendor sandbox; identical customer/staff wording.
F05 · P1 verificationTop-level onlineOrder=false, appOrder=true; brand activeModules includes onlineOrder. 17 outlets are ordering-listed, yet Udyod Vihar and Palladium Mall have config mode=READ. [E02/E03]Multiple state layers can mislead release decisions. This may be intentional, not a proven ordering bug.FUDR product owner: document effective web/app/outlet/service-state precedence.An outlet×channel×service truth table, showing browse-only, orderable, closed, paused and stopped states in the UI.
F06 · P1 integration gateLocal T3-0 is held; no inspected artifact proves FUDR–Rista/ODS/OneOps synchronization. NPL and People contracts inspected are drafts. [E07–E09]Overselling, missed launches or duplicate revenue reporting if assumed integrated.HOP architect + FUDR vendor owner: sign identifiers, API semantics and reconciliation ownership.Vendor-supported sandbox contract and the acceptance pack in §8.
F07 · P2Primary hero: 3,480,654 bytes; mobile secondary PNG: 1,279,672 bytes; secondary desktop SVG: 1,210,424 bytes. [E05]Avoidable download cost and likely mobile performance pressure; no measured LCP regression is claimed.Web performance owner: responsive formats, right-sized images, loading priority.Proposed ≤250 KB mobile hero budget where quality permits, and measured field/pilot performance after optimization.
F08 · P1 accessibility verificationDelivered viewport disables zoom; scripts suppress iOS gestures. About-page CSS specifies #aaa9a9 text on white (~2.34:1 by calculation). [E01/E02]Low-vision users may struggle to read; actual device override behavior remains untested.UX/frontend owner: allow zoom and darken body text.200% zoom without lost controls; proposed ≥4.5:1 body contrast; keyboard and mobile checks.

3. Application architecture and authentication

LayerEvidence-backed assessmentLimit
Edge and deliveryCloudflare response headers, HTTPS/HSTS, no-store HTML. Separate assets.fudr.in media host.Origin hosting, backend language, database, deployment topology and uptime not established.
FrontendReact/ReactDOM 16.14.0 strings in delivered vendor code; Webpack JSONP and lazy chunks; Redux-style state and Axios interceptors in code.Version strings describe delivered libraries; no security assessment was performed.
BootstrapEmpty root shell plus window.__FUDR_BOOT__ brand/modules/resources; web surface; pageGraph null in root bootstrap; site chunk supplies route/config machinery.Not evidence of fully server-rendered product content.
APIRuntime API_URL=https://api.fudr.in; common client base /restaurant-service; source-defined REST reads with JSON/HAL responses.HAL response format does not prove Spring or any specific backend framework.
Tenant/outlet modelSubdomain → brand harleys; brand UUID, city UUID, restaurant UUID and restaurant/scan codes; outlet config and service types.These identifiers are not Rista branch_code or OneOps outlet IDs. A crosswalk is required.
Site gateHTTP Basic challenge; successful supplied login.No merchant-role assertion. Keep separate from customer auth.
Customer authSource includes phone/OTP flow, Bearer authorization, token refresh and localStorage AuthData/GuestLoginData. Config allows guest browsing and protected-only access.No OTP sent, guest created or token session exercised. Retention, permission boundaries and refresh reliability were not tested.
PaymentsHTML loads Cashfree SDK; runtime also contains payment-provider configuration. JP Nagar config is prepayment.SDK inclusion is not a successful integration or settlement proof. No payment initiated.
App/PWAService-worker registration, manifest handling and React Native WebView bridge exist in delivered source.Offline correctness, installability and native-app parity unverified.
Merchant backendClient copy references business.fudr.in; supplied root-path checks exposed the web shell.Merchant login, roles, menu authoring, availability controls, refunds, reports and audit trails require a verified portal/read-only account. Not inferred from client feature flags.

API evidence: executed reads versus references

Base URL for the following paths is https://api.fudr.in/restaurant-service. No demo Basic credential was forwarded to this separate API host.

EndpointScan treatmentMeaning
GET /brands/cities/harleysExecuted, 200Six cities.
GET /brands/harleys/outletDetails?page=1&size=100&appOrderingStatus=ACTIVEExecuted, 200; one page, totalElements=17Ordering-listed outlet metadata.
GET /restaurants/{id}?depth=allExecuted for configured base and one valid outletBase invalid; JP Nagar metadata, service types and hours available.
GET /restaurants/scan/{selfPickupScanCode}?includeMenu=true&subDomain=harleysExecuted for JP Nagar, 200Read-only pickup catalogue sample.
GET/POST /appStartupSource reference; root bootstrap inspectedTenant initialization, not a mutation workflow. No POST needed by this scan.
POST /orders/cart, /orders/cart/v2Source reference only; not calledCart has server API involvement; do not assume Add is local-only.
/customizations/groups, /menus/variationsGroups: source only. Variations: one JP Nagar cake read executed, 200.Size, price and promotional add-ons sampled; no selection/cart mutation.
/orders/current/counts, order/account routesSource references onlyTracking/history capability; no customer orders queried.
/brandGuests/refreshToken, /guests/refreshTokenSource references onlyRefresh mechanism; no customer session exercised.

This is a source/API map, not an intercepted browser waterfall. Production webhook support, quotas, write permissions and POS handoff contracts were not available.

4. Module-by-module inventory

ModuleEvidence-backed inventoryCompletion boundary
Storefront / brand pagesConfigured hero banners, selected-outlet bar, category grid and city tiles; source routes for About, Stores, Franchise, Enquiry and Work With Us. Mint #97DDDE, cream and serif brand styling.Content/config observed; route rendering and forms not exercised. No enquiry submitted.
Digital menu / catalogueJP Nagar pickup menu obtained from a source-defined read endpoint. Category and item summary follows below. Versioned menu/category/item components and modifier endpoints exist in source.One outlet/service sample; not a whole-estate SKU master, POS stock audit or menu write test.
Ordering / cartConfig displays delivery (DL) and pickup (SP), while applicable modes also contain dine-in (DI). JP Nagar detail returns pickup service and a Self Pick-up scan code. Header points to /order/cart.Delivery reach, taxes, fees, allergens, customization validity and final price reconciliation require rendered/sandbox checks. No cart request or order created.
RewardsActive reward program with Victorian, Royal and Majesty tiers, configured earn values 5/10/20 with percentage unit and redeem caps 50/75/100.These are configuration values, not validated entitlement, profitability or settlement outcomes. Threshold mismatch is F04.
WalletTop-level wallet module inactive; generic wallet copy/routes remain in source.Do not count wallet as enabled merely because code exists. Balance/recharge untested.
Coupons / offersCoupon, offer, reward and deal routes, terms templates and offer lookup functions exist. Config says coupons are not categorically excluded from ordering.Eligibility, stacking, expiry and redemption untested; no coupon claimed.
Outlets / branches17 ordering-listed records across six cities, with UUIDs, display names, city IDs, order status and config.Not a claim about total operational outlets, opening readiness or actual live service availability.
Hours / availabilityJP Nagar has seven workhour records, each 08:00–00:00, and pickup isPaused=false, isStopped=false.Local-time/midnight semantics, holiday overrides and observed customer state unverified. Other outlets’ hours were not audited.
Tracking / historySource includes order lifecycle/status handling and order/history routes. Account navigation labels Order History but links to view=point-history.Verify whether the destination mixes points and orders; label alone is not proof of wrong behavior. No real customer record accessed.
Admin / merchantNo authenticated merchant console established.Inventory outstanding: multi-outlet permissions, catalogue publication, sold-out toggles, reconciliation reports, audit history and role separation.

JP Nagar pickup catalogue — observed sample

The read endpoint returned 118 distinct menu item IDs across 57 sections: 18 nonempty and 39 empty. There are 108 enabled and 10 disabled items; none are hidden in this response. All three Fresh Breads items are disabled. Section enable flags are true even for empty sections; whether the UI suppresses them is unverified.

Nonempty section (API label)Item records
Harley's Festive Specials15
Sweet Assortments8
Favourite Combinations6
Signature Medovik13
Chessecake Pastries6
Celebration Medovik Cakes13
Celebration Cheesecakes6
French Macarons10
Mexican Tres Leches6
Chef's Table1
Bar Cakes & Muffins6
Fresh Breads3
Classic Croissants1
Cake Shake Indulgence5
Chocolate Frappes5
Hot Chocolate3
Iced Coffee5
Hot Coffee6

117 of 118 items have media and 111 have descriptions. Choco Mocha Cold Coffee has no media entry. The section label “Chessecake Pastries” needs copy correction. These are catalogue-quality findings; the actual fallback image and rendered navigation remain unverified.

Nineteen customizable items use default variations. Their absent top-level price is not a missing-price defect: each has defaultVariation.price. Across top-level/default prices the sample spans ₹80–₹1,450, before checkout taxes/charges; this is not the full size-variant range. A separately retrieved London Viral Whipped Caramel Medovik Cake has 600 gm at ₹1,275 and 1 kg at ₹2,100, vegetarian metadata and two zero-price promotional add-ons. Do not assume free-add-on eligibility from price alone.

ownerParentId references exist (for example harleys-diwalisplgifthamper-01), but no verified Rista SKU crosswalk was supplied. An enabled item flag is not physical stock quantity or evidence of OneOps synchronization. Catalogue acceptance should check images/descriptions, spelling, per-size price/tax disclosure, allergen/ingredient presentation and correct disabled/empty behavior across selected pilot outlets.

Ordering-listed outlet footprint

CityReturned countDisplay names
Bangalore4JP Nagar; Kalyan Nagar; Mall of Asia; Prestige Tech Park
Hyderabad6Kapil Towers; Nanakramguda; Sainikpuri; TSPA Junction; AMB Mall; Odeon Mall
Mumbai3BSE; Jio World; Palladium Mall
Pune2Balewadi; MOM
Gurugram1Udyod Vihar (API spelling)
Vijayawada1Sentini Mall

5. UI/UX review: source and asset evidence, with visual gaps

The sampled product photography and mint packaging convey a coherent premium bakery identity. The first banner embeds its caption in the image. The secondary mobile artwork asks users to “Tap to open the box”; that is an engagement cue, not an explicit purchasing action. Retain the brand treatment while making outlet, fulfillment mode, product price and the next ordering action clear in live layouts.

Dimension390px mobile assessment1440px desktop assessmentRequired verification
Visual hierarchySource orders primary marketing before selected outlet/category content. Risk: browse/order context sits below promotion. Actual fold unknown.Brand imagery is strong; ordering prominence relative to the hero is unknown.Capture initial fold, selected outlet and primary CTA at both exact widths.
NavigationConfigured Home, Cart and Account with profile/rewards/support sublinks; guest browsing is supported in config.Account dropdown and category subnavigation are defined.Back navigation, selected-city persistence, drawer/modal focus and route consistency.
ImagesMobile secondary source is 2987×1920 PNG at 1.28 MB; visible source text may become small when scaled.Primary source is 2000×1000 PNG at 3.48 MB; white text over a light photograph needs rendered contrast review.Responsive source choice, crop, alt text, lazy loading and layout stability.
Tap targetsNot measured. “Tap to open” text is baked into artwork; actual clickable element and accessible name unknown.Keyboard focus and pointer target behavior not measured.Proposed 44px primary touch target budget; keyboard activation and visible focus.
ReadabilityZoom restriction is confirmed in delivered HTML/scripts; About body CSS has low calculated contrast.Same source concern; fixed negative margins in About CSS create a layout risk, not a measured overflow defect.200% zoom, text reflow and no horizontal overflow at both widths.
Empty/error statesSource has unavailable-item copy and generic empty-state assets. Base-outlet error creates a concrete case to test.Same requirement.No-outlets, no-results, sold-out, off-hours, invalid outlet and timeout states with a useful recovery action.
Customer frictionSignup config requests name, email and DOB; no evidence these are all required before guest browsing.Same source config.Keep optional profile enrichment distinguishable from checkout necessities; validate actual consent and form sequence.
Staff journeyMerchant access unavailable.Merchant access unavailable.Walk one outlet manager through observing order status and availability, without saving changes; record role scope and audit visibility.

6. Performance measurements and what they mean

Single-environment, single-pass HTTP observations on 22 October 2026; no throttling or browser execution. These are elapsed request times, not TTFB, render times, field percentiles or SLA measurements. OS/network/CDN cache effects are uncontrolled.

ResourceObserved resultInterpretation
Unauthenticated root401; curl total ~0.364 sGate behavior.
Authenticated root200; ~0.360 s; 115,434 decoded bytesFast shell response in this sample; root is not rendered content.
Vendor JS + main JS1,038,636 + 556,037 decoded bytes, before lazy chunksAt least ~1.59 MB of these two script bodies; compressed wire bytes and execution cost not measured.
Cities / outlet listing200; ~0.319 / ~0.172 sPoint samples only.
Primary hero PNG200; 3,480,654 bytes; ~0.781 s in this runLarge asset; prioritize format/size improvement.
Mobile secondary PNG200; 1,279,672 bytes; ~0.099 sFast local fetch does not remove mobile bandwidth cost.
Desktop secondary SVG200; 1,210,424 bytes; ~0.063 sSVG extension does not guarantee a small payload.

Proposed performance acceptance: repeat at 390px and 1440px with cold/warm cache, explicit mobile network/CPU settings and three runs per condition; capture LCP/CLS/INP where applicable, total transferred bytes, errors and time to usable menu. Proposed pilot targets: LCP ≤2.5 s, CLS ≤0.1, INP ≤200 ms at p75 after sufficient real-user samples. These are proposed targets, not achieved metrics.

7. Integration architecture: current evidence and proposed design

Current verified relationship: FUDR web client reads FUDR API and asset hosts. No inspected response or local contract proves a live FUDR connection to Rista, Central ODS, OneOps or HOP. Absence of evidence is not proof that no vendor-side POS integration exists.

Local requirements: T3-0 explicitly says HOLD BUILD; Central ODS owns Rista/Odoo ingestion, retries, archives and normalization. OneOps/HOP consume its canonical read views and must not duplicate direct Rista polling. The documented outlet-status feed names Swiggy, Zomato and Ownly, not FUDR. Vendor 403/field-shape gaps are reported by the intake document, not freshly retested here.

FlowProposed source of truth and contractFailure handling / auditManagement evidence
Rista → Central ODS → HOP/OneOpsPreserve planned ingestion ownership; branch_code and canonical SKU keys.Source event IDs, ingestion timestamps, replay/deduplication, quarantined unknown mappings.Reconciled counts/totals and freshness by outlet, source and business date.
FUDR ↔ canonical identityVersioned map of brand, restaurant UUID/code, city, scan/service context and item/variant IDs to branch/SKU.Unique mapping constraints, effective dates, steward and unresolved queue.Pilot coverage 100%; no orphan outlet/SKU publication.
OneOps sold-out intent → supported FUDR adapterSeparate command authority from ODS observation. Agree who can change stock availability, scope, reason and expiry.Desired vs observed state, source/version, correlation ID, idempotency, retry/backoff, acknowledgement and rollback. Never call undocumented client endpoints a supported integration.Unacknowledged changes, stale states, oversell exceptions and reconciliation lag.
NPL T1-10 → approved menu publicationApproved SKU, recipe/compliance, price/media, outlet scope, crew/cold-chain readiness and publish/withdraw windows.Preview, versioned release, effective time, acknowledgement and controlled rollback. Failed outlet publication remains open.Launch readiness versus actual customer-visible availability; margin, sell-through and waste from labelled sources.
Outlet master → public hoursExplicit timezone, weekly trading calendar, holidays, temporary closures and channel overrides.Manager-owned exceptions and audit trail; distinguish closed, paused, stockout and stale.Hours mismatch and unresolved closure exceptions.
T1-11 staff presence → readiness signalStaff rostering/presence can inform a readiness warning. It is not authoritative public opening hours.No automatic public closure solely because a staff check-in is missing.Staffing gap and accountable outlet response.
FUDR order facts → ODSAgree order ID and POS linkage, status lifecycle, tax/discount/refund fields and channel attribution.Prevent double counting a FUDR order also recorded in Rista; handle delayed refunds and reordered events.Gross/net sales, refunds, settlements and unresolved differences by outlet/day.

Proposed logical paths:

Rista / Odoo ──> Central ODS (planned; HOLD) ──> HOP / OneOps views
FUDR order facts ──> approved ingestion + POS deduplication ──> ODS
NPL approvals / OneOps availability intent
  └──> separately approved vendor adapter ──> FUDR
         └── acknowledgement + observed-state reconciliation ──> HOP exceptions
Outlet master trading hours ──> approved publication adapter
T1-11 staff presence ──> readiness warnings (not direct public-hours authority)

A 15-minute analytical ingestion design must not silently become the operational stockout SLA. Decide whether customer availability needs a separate supported event/command path. The NPL and Presence contracts also expose a BIGINT outlet ID versus text branch_code mismatch; resolve identity before synchronization.

8. Delivery plan and measurable acceptance

These are proposals for owner discussion, not authorization to modify FUDR.

SequenceWork / proposed accountable roleAcceptance evidence
1 — Configuration cleanupDigital product owner + FUDR implementation lead; F01–F05Valid default outlet, unique city map, clean brand content, agreed rewards rule and documented effective availability states.
2 — Complete read-only reviewUX lead + merchant operations owner390px/1440px screenshots, rendered navigation/error/tap/focus checks and merchant read-only role walkthrough. No customer mutation required.
3 — Integration contractHOP architect + ODS owner + vendor ownerSigned ID crosswalk, documented API/webhook support, rate limits, authentication, ownership, data retention and event semantics; preserve T3-0 hold until released through its own gate.
4 — Controlled sandbox pilotIntegration owner + selected outlet managerDuplicate/reordered events safe; one stockout/restore acknowledged and observed; LTO appears/disappears at correct outlet/time; timeout enters an owned queue; hours exceptions reconcile. These write tests were not performed here.
5 — Commercial verificationFinance + digital commerce ownerNo duplicate FUDR/Rista revenue; sampled taxes/discounts/refunds/settlements reconcile; conversion, repeat rate, contribution margin and waste tracked with source labels.
6 — Scale gateOwner + operations/technology leadsExpand only after agreed service/exception performance and training evidence. The saved 1,000+ outlet ambition is a target for the two years from 8 October 2026, not a forecast or this demo’s verified capacity.

Do not declare success from an HTTP acknowledgement alone. Every operational control needs an accountable owner, desired state, observed result, timestamp, exception path and closure evidence. Avoid rebuilding FUDR’s commerce engine in HOP unless a measured capability/cost gap justifies it; first assess a supported integration with clear authority.

9. Owner review — decisions pending, not signed off

Suggested 15-minute review: five minutes on F01–F05 and their business impact; five on the commerce/ODS/OneOps authority boundary; five on the evidence needed to close the remaining scan.

  • ☐ Confirm FUDR’s intended role: customer commerce, digital menu, loyalty, merchant operations, and which channels are in scope.
  • ☐ Name the vendor and internal owners for menu/pricing, stock availability, rewards and trading hours.
  • ☐ Accept or change the proposed configuration-first priority; authorize fixes separately through normal controls.
  • ☐ Obtain the actual merchant portal/read-only role and a permitted browser session to finish visual review.
  • ☐ Agree operational stockout latency and supported integration direction; preserve the ODS hold until its own acceptance gate is satisfied.
  • ☐ Approve the sandbox pilot specification before any controlled write tests.

Owner review status: PENDING. This readout does not record owner acceptance, a production release approval or integration-build sign-off.

10. Evidence register and reproducibility

Captured locally during this dispatch. Private raw API/source evidence stays in runtime/agy-eval/fudr-deepscan/evidence/; it is not included in the public/staging readout bundle. manifest.json records filenames, sizes and SHA-256 hashes. The readout contains only the findings needed for owner review.

Evidence IDSource / local recordSupports
E01Root HTML and headers from https://harleys.fudr.in/; authenticated response hash recorded in sanitized-config-evidence.jsonHTTP Basic gate, bootstrap, viewport, SDK and shell.
E02sanitized-config-evidence.json; delivered window.__FUDR_BOOT__ examinedFlags, resource copy, city collision, base outlet, rewards boundary.
E03cities.json, outlets.json, http-results.jsonSix cities, 17 ordering-listed records, page metadata and modes.
E04base-outlet-all.json, jp-outlet.jsonInvalid base reference versus valid outlet control; sample hours/service metadata.
E05asset-metrics.json, primary-hero.png, mobile-secondary.png, desktop-secondary.svgDownload sizes, source image inspection, not rendered page screenshots.
E06main-pretty.js, site-pretty.js, referenced JS chunks, jp-pickup-menu.json, jp-menu-inventory-summary.json, jp-example-variations.jsonSource architecture, routes, API signatures, catalogue sample.
E07Rista Central ODS intake, lines 5, 13–19, 33–39, 50, 63Build hold, ownership, branch key, planned feeds and reported vendor gaps.
E08NPL contract, lines 5–7, 29–43, 202–217, 247Draft status, launch readiness and deferred ODS metrics.
E09People & Presence contract, lines 1–10, 523, 597–606Staff-presence scope, ID mismatch and draft status.

Verification is self-authored for the product scan; a parallel agent inspected local integration contracts and derived catalogue evidence. Neither constitutes independent owner sign-off. Reproduce only the listed reads; do not follow write functions while using this read-only scope.

11. Publication and remaining gaps

Markdown and Formatted HTML are the deliverables for this scan. ASK-25 remains READOUT DELIVERED — VISUAL/MERCHANT VALIDATION AND OWNER REVIEW PENDING, rather than an unqualified product acceptance. The requested sync-oven-command-staging.sh completed successfully. Both readout files were verified by matching SHA-256 on the staging host and inside its API container. Final publication updates are synchronized again after this record.

The preferred HOP readout could not be reached because DNS resolution failed from this environment. The fallback staging readout returned HTTP 303 to the login page with the document destination preserved. Authenticated owner viewing was not tested. OneOps returned the expected 302 to HOP.

Validation passed for credential redaction in both reports, sticky Harley's back navigation, HTML parsing, unique anchors, table-of-contents targets and the ASK-25 dashboard/ledger links. Rendered visual QA of the readout itself was unavailable under the same browser limitation. Staging publication followed the explicitly requested sync script; the FUDR application remained read-only.