**Considering website adjustments**

I need to remove the analysis and ballbox directories, but that could break old external links. The user asked me to remove the route that's not accessible from the root. I could just keep the root/machine/ourvend/status accessible. Making it mobile-friendly likely means changing the root page – I could remove the empty machine div and create larger tap areas.

I should edit the root and the machine/ourvend/docs pages to add viewport-friendly widths and maybe larger navigation buttons or stacked cards. I'm also thinking about how using bash to delete directories could be irreversible, so I'll need to be careful.

python3 - <<'PY'
from pathlib import Path
site=Path('/home/sebas/work/projects/vending-status-pages/site')
# Rewrite root for mobile friendliness and cleaner nav
p=site/'index.html'
p.write_text('''<!doctype html>

  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Estado máquinas expendedoras</title>

Estado actual de máquinas

GitHub Pages snapshot vivo. Refresco por GitHub Actions.

      OurVendbackend, control y superficies
      Machinemáquina, docs y fuentes

Repo: sebasfavaron/vending-status

''')

# make internal pages more mobile friendly
for root in [site/'ourvend', site/'machine']:
    for p in root.rglob('*.html'):
        t=p.read_text()
        t=t.replace('max-width:1040px;margin:36px auto;padding:0 18px','max-width:1040px;margin:20px auto;padding:0 14px')
        t=t.replace('.card{border:1px solid #ddd;border-radius:10px;padding:16px 18px;margin:18px 0;background:#fafafa}','.card{border:1px solid #ddd;border-radius:12px;padding:16px 18px;margin:18px 0;background:#fafafa}')
        t=t.replace('nav.top{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px}','nav.top{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}')
        t=t.replace('@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:20px} h1{font-size:38px} h2{font-size:30px} nav.top{gap:10px}}','@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }')
        p.write_text(t)

PY
rm -rf /home/sebas/work/projects/vending-status-pages/site/analysis /home/sebas/work/projects/vending-status-pages/site/ballbox
cd /home/sebas/work/projects/vending-status-pages && git status --short site | sed -n '1,240p'


 D site/analysis/action-plan.html
 D site/analysis/actions-next-step.html
 D site/analysis/capabilities-clean.html
 D site/analysis/capabilities.html
 D site/analysis/control-verdict.html
 D site/analysis/coordination.html
 D site/analysis/details.html
 D site/analysis/index.html
 D site/analysis/machine-docs/index.html
 D site/analysis/machine-docs/manual-signal.html
 D site/analysis/machine-docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 D site/analysis/machine-docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 D site/analysis/machine-docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 D site/analysis/machine-docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 D site/analysis/machine-docs/parte-5-manual-operativo-ballbox.html
 D site/analysis/machine-docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 D site/analysis/machine-docs/verified-truth.html
 D site/analysis/surfaces.html
 D site/ballbox/index.html
 D site/ballbox/machine/docs/index.html
 D site/ballbox/machine/docs/manual-signal.html
 D site/ballbox/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 D site/ballbox/machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 D site/ballbox/machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 D site/ballbox/machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 D site/ballbox/machine/docs/parte-5-manual-operativo-ballbox.html
 D site/ballbox/machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 D site/ballbox/machine/docs/verified-truth.html
 D site/ballbox/machine/index.html
 D site/ballbox/ourvend/action-plan.html
 D site/ballbox/ourvend/actions-next-step.html
 D site/ballbox/ourvend/capabilities-clean.html
 D site/ballbox/ourvend/capabilities.html
 D site/ballbox/ourvend/control-verdict.html
 D site/ballbox/ourvend/details.html
 D site/ballbox/ourvend/index.html
 D site/ballbox/ourvend/surfaces.html
 M site/index.html
 M site/machine/docs/index.html
 M site/machine/docs/manual-signal.html
 M site/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 M site/machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 M site/machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 M site/machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 M site/machine/docs/parte-5-manual-operativo-ballbox.html
 M site/machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 M site/machine/docs/verified-truth.html
 M site/machine/index.html
 M site/ourvend/action-plan.html
 M site/ourvend/actions-next-step.html
 M site/ourvend/capabilities-clean.html
 M site/ourvend/capabilities.html
 M site/ourvend/control-verdict.html
 M site/ourvend/details.html
 M site/ourvend/index.html
 M site/ourvend/surfaces.html


<!doctype html>

  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Estado máquinas expendedoras</title>

Estado actual de máquinas

GitHub Pages snapshot vivo. Refresco por GitHub Actions.

      OurVendbackend, control y superficies
      Machinemáquina, docs y fuentes

Repo: sebasfavaron/vending-status


<!doctype html><meta charset="utf-8"><title>Ballbox / Machine</title>homeourvendmachine
Home›Machine

Machine

Ballbox machine

Máquina TCN: docs, consolidaciones y material de investigación.

Docs

Documentación principal y fuentes desde esta misma página.

Verdad comprobada

Signal del manual oficial

Índice completo

Fuentes

Parte 1

Parte 2

Parte 3

Parte 4

Parte 5

Parte 6

Relacionado

OurVend

Veredicto API/control


<!doctype html><meta charset="utf-8"><title>Ballbox / OurVend</title>homeourvendmachine
Home›OurVend

OurVend

OurVend

Análisis del backend/web vendor y sus superficies de control.

Entradas

Qué se puede hacer

Capacidades limpias

PC vs H5

Veredicto API/control

Próximo paso

Plan ejecutado

Detalle completo


bash

cd /home/sebas/work/projects/vending-status-pages && git add site && git commit -m "Prune legacy routes and improve mobile layout" && git push origin main && gh workflow run deploy.yml


[main e80ce66] Prune legacy routes and improve mobile layout
 56 files changed, 90 insertions(+), 2621 deletions(-)
 delete mode 100644 site/analysis/action-plan.html
 delete mode 100644 site/analysis/actions-next-step.html
 delete mode 100644 site/analysis/capabilities-clean.html
 delete mode 100644 site/analysis/capabilities.html
 delete mode 100644 site/analysis/control-verdict.html
 delete mode 100644 site/analysis/coordination.html
 delete mode 100644 site/analysis/details.html
 delete mode 100644 site/analysis/index.html
 delete mode 100644 site/analysis/machine-docs/index.html
 delete mode 100644 site/analysis/machine-docs/manual-signal.html
 delete mode 100644 site/analysis/machine-docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 delete mode 100644 site/analysis/machine-docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 delete mode 100644 site/analysis/machine-docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 delete mode 100644 site/analysis/machine-docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 delete mode 100644 site/analysis/machine-docs/parte-5-manual-operativo-ballbox.html
 delete mode 100644 site/analysis/machine-docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 delete mode 100644 site/analysis/machine-docs/verified-truth.html
 delete mode 100644 site/analysis/surfaces.html
 delete mode 100644 site/ballbox/index.html
 delete mode 100644 site/ballbox/machine/docs/index.html
 delete mode 100644 site/ballbox/machine/docs/manual-signal.html
 delete mode 100644 site/ballbox/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 delete mode 100644 site/ballbox/machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 delete mode 100644 site/ballbox/machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 delete mode 100644 site/ballbox/machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 delete mode 100644 site/ballbox/machine/docs/parte-5-manual-operativo-ballbox.html
 delete mode 100644 site/ballbox/machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 delete mode 100644 site/ballbox/machine/docs/verified-truth.html
 delete mode 100644 site/ballbox/machine/index.html
 delete mode 100644 site/ballbox/ourvend/action-plan.html
 delete mode 100644 site/ballbox/ourvend/actions-next-step.html
 delete mode 100644 site/ballbox/ourvend/capabilities-clean.html
 delete mode 100644 site/ballbox/ourvend/capabilities.html
 delete mode 100644 site/ballbox/ourvend/control-verdict.html
 delete mode 100644 site/ballbox/ourvend/details.html
 delete mode 100644 site/ballbox/ourvend/index.html
 delete mode 100644 site/ballbox/ourvend/surfaces.html
To https://github.com/sebasfavaron/vending-status.git
   629c58b..e80ce66  main -> main


cd /home/sebas/work/projects/vending-status-pages && gh run list --workflow deploy.yml --limit 2

python3 - <<'PY'
import requests,time
urls=[
 'https://sebasfavaron.github.io/vending-status/',
 'https://sebasfavaron.github.io/vending-status/ourvend/',
 'https://sebasfavaron.github.io/vending-status/machine/',
 'https://sebasfavaron.github.io/vending-status/analysis/',
 'https://sebasfavaron.github.io/vending-status/ballbox/'
]
for i in range(10):
    print('round',i+1)
    for u in urls:
        r=requests.get(u,timeout=20)
        print(r.status_code, u, r.text[:90].replace('\n',' '))
    print('---')
    time.sleep(5)
PY


in_progress		deploy	deploy	main	workflow_dispatch	26624089442	7s	2026-05-29T07:23:48Z
completed	success	deploy	deploy	main	workflow_dispatch	26623885143	40s	2026-05-29T07:18:50Z


round 1
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 2
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 3
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 4
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 5
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 6
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
200 https://sebasfavaron.github.io/vending-status/analysis/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend coordination</ti
200 https://sebasfavaron.github.io/vending-status/ballbox/ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; ur
---
round 7
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
404 https://sebasfavaron.github.io/vending-status/analysis/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
404 https://sebasfavaron.github.io/vending-status/ballbox/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
---
round 8
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
404 https://sebasfavaron.github.io/vending-status/analysis/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
404 https://sebasfavaron.github.io/vending-status/ballbox/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
---
round 9
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
404 https://sebasfavaron.github.io/vending-status/analysis/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
404 https://sebasfavaron.github.io/vending-status/ballbox/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
---
round 10
200 https://sebasfavaron.github.io/vending-status/ <!doctype html> <html lang="es"> <head>   <meta charset="UTF-8" />   <meta name="viewport"
200 https://sebasfavaron.github.io/vending-status/ourvend/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / OurVend</title><style>bo
200 https://sebasfavaron.github.io/vending-status/machine/ <!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine</title><style>bo
404 https://sebasfavaron.github.io/vending-status/analysis/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
404 https://sebasfavaron.github.io/vending-status/ballbox/ <!DOCTYPE html> <html>   <head>     <meta http-equiv="Content-type" content="text/html; ch
---


todo

Removed legacy /analysis and /ballbox routes from published site, kept only root-accessible routes, improved mobile layout on home and internal pages, pushed and deployed with public 404 verification for removed routes.


Updated #15 (in_progress → completed)

Resume Ballbox FTP investigation

Check prior findings, search for known/default credentials, and test 888888 if target/login details are available.

No public default password found quickly online for OurVend FTP ysftp. Tested ysftp/888888 against ad.ourvend.com; server banner Microsoft FTP Service, login failed with 530 User cannot log in. Prior session also tested ysftp blank, ysftp, and Vendinges2ya## without success.

Find Ballbox source export with FTP password

Deep local search for the original machine export/config artifact that contains the actual OurVend FTP password, not just docs that mention it.

searching source export for FTP password

No local source export artifact found yet. Confirmed docs only mention FTP host/user. Found runtime secret file with OurVend web credentials, but those were already tested against FTP and failed, so it is not the FTP password source.

Prepare field instructions to recover Ballbox machine FTP config

Create a short operator-facing document for someone physically at the machine to export the right files and send back evidence needed to recover the OurVend FTP password/config.

Turn ourvend-cloud-map into Ballbox coordination static site

Verify current publish/setup, convert TCN DOCX docs to static HTML under the site, and update index with entries for machine docs/research plus existing OurVend cloud map content.

Converted 6 TCN DOCX files into static HTML inside ourvend-cloud-map/html-v2/machine-docs, added Ballbox coordination hub, and updated index to expose two entries: OurVend cloud map and Ballbox coordination. Confirmed project is plain static HTML in-repo; confirmed /files URLs serve it. Did not verify a dedicated vanity route beyond /files.

Migrate Ballbox coordination pages to published vending-status analysis site

Copy the new coordination/index/machine-docs content into the GitHub Pages-backed vending-status-pages site/analysis directory and verify the published-style paths locally.

Migrated local Ballbox coordination pages into /home/sebas/work/projects/vending-status-pages/site/analysis. Verified local served paths under /files. GitHub Pages URL still shows old version because changes are not pushed/deployed yet.

Create verified-truth consolidation doc for Ballbox machine docs

Synthesize all TCN/OurVend machine parts into a new document that keeps only confirmed/comprobada truth, excluding hypotheses and open questions, then add it to published analysis machine-docs index.

Create manual-signal doc from official manual images

Create a separate machine-docs page that captures only the signal obtained from the official manual photos, distinct from verified-truth and part docs, and link it from the machine-docs index.

Improve navigation and breadcrumbs in published Ballbox machine docs

Refactor the analysis/coordination/machine-docs static pages to reduce confusion: add breadcrumbs, clearer hierarchy, consistent nav labels, and section-level entry points.

Added clearer hierarchy and breadcrumbs across analysis hub, coordination, machine-docs index, consolidations, and part docs. Pushed and triggered deploy.

Reorganize published site into semantic /ballbox routes with site-wide breadcrumbs

Implement the correct route hierarchy from / to /ballbox/... in the published static site, keep legacy analysis aliases during transition, verify locally, then push and deploy.

Created semantic /ballbox hierarchy with hubs for /ballbox, /ballbox/ourvend, /ballbox/machine, /ballbox/machine/docs. Kept legacy /analysis alias. Verified locally under /files and publicly after deploy.

Simplify Ballbox site navigation and mobile typography

Remove empty Ballbox hub and redundant internal-link wording, increase mobile font sizing, remove legacy/new wording, and republish.

Removed empty Ballbox hub from effective navigation, removed internal wording like machine docs where redundant, increased mobile font sizing, removed legacy/new wording, pushed and deployed.

Flatten Ballbox nav and embed docs section inside Machine page

Remove visible /ballbox hub concept from breadcrumbs/nav, stop linking to separate machine > docs in global nav, and make Machine page contain a docs section with direct links.

Removed docs link from higher-level nav and embedded a docs section directly in Machine page with direct links to consolidations and source parts. Pushed and triggered deploy.

Unify site base font sizing one step below current home

Reduce the oversized home font and align base typography across root and Ballbox pages to a slightly smaller shared scale, then push and deploy.

Reverted oversized home font and unified base typography across root and Ballbox pages to 16px desktop / 18px mobile. Pushed and deployed.

Flatten /ballbox routes to root and enlarge Ballbox typography

Move semantic Ballbox pages from /ballbox/* to root-level /ourvend, /machine, /machine/docs..., increase font sizing on those pages, keep compatibility aliases if useful, then push and deploy.

flattening routes and enlarging typography

Flattened routes from /ballbox/* to /ourvend and /machine/*, increased typography on those pages, kept /ballbox/* as redirects for compatibility, pushed and deployed.

Match machine and ourvend page base font to home link size

Increase base typography on /machine and /ourvend pages so body text matches the perceived size of the main links on /. Push and deploy after local check.

Raised /ourvend and /machine typography to 20px desktop / 22px mobile, pushed and deployed.

Prune inaccessible legacy routes and improve mobile friendliness

Remove site routes that are no longer reachable from the home page, especially legacy /analysis and compatibility /ballbox paths if not linked from root, and improve mobile layout/spacing for the public pages. Validate locally, then push and deploy.


Hecho.

Saqué rutas legacy no accesibles desde `/`:
- `/analysis/*`
- `/ballbox/*`

Ahora quedan vivas:
- `/`
- `/ourvend/`
- `/machine/`
- `/machine/docs/...`

Mobile:
- home más limpia
- cards grandes y tocables
- menos padding lateral
- grids más simples
- mejor stack en mobile
- machine/ourvend/docs también más cómodas

Verificado:
- `/analysis/` → 404
- `/ballbox/` → 404

Público:
- https://sebasfavaron.github.io/vending-status/
- https://sebasfavaron.github.io/vending-status/ourvend/
- https://sebasfavaron.github.io/vending-status/machine/


[telegram] quedan links a rutas inexistentes (ej en el navbar y breadcrumbs de fuentes). hace pase fino para sacar

saca tambien bajo los breadcrumbs texto redundante similar. ej

DOCS / CONSOLIDADO
MACHINE / CONSOLIDADO


**Inspecting files and patching**

I realize I need to inspect the files and apply any necessary patches. This could involve checking for errors or vulnerabilities that need to be fixed. I'll go through the files carefully to ensure everything is up to date and functioning as it should. It’s important to be thorough because even small oversights can lead to bigger issues later on. So, I’ll focus on this task to maintain efficiency and security.

Remove broken internal links and redundant sublabels

Do a fine pass across published OurVend/Machine pages to remove links pointing to deleted routes and remove redundant text under breadcrumbs like DOCS / CONSOLIDADO or MACHINE / CONSOLIDADO. Validate locally, then push and deploy.


Created #16: Remove broken internal links and redundant sublabels (pending)

Resume Ballbox FTP investigation


Updated #16 (pending → in_progress)

Resume Ballbox FTP investigation


bash

cd /home/sebas/work/projects/vending-status-pages/site && grep -RInE 'analysis/|ballbox/|breadcrumbs|kicker|Relacionado|OurVend|Machine|index.html">home|../ourvend/control-verdict|Índice completo' ourvend machine | sed -n '1,260p'


ourvend/actions-next-step.html:9:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
ourvend/actions-next-step.html:10:.breadcrumbs a{color:#666;text-decoration:none}
ourvend/actions-next-step.html:11:.breadcrumbs span{margin:0 6px}
ourvend/actions-next-step.html:13:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
ourvend/actions-next-step.html:15:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
ourvend/actions-next-step.html:16:</style>homeourvendmachine
Home›OurVend›Page

ourvend/actions-next-step.html:17:

Próximo paso: acciones

ourvend/capabilities.html:10:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
ourvend/capabilities.html:11:.breadcrumbs a{color:#666;text-decoration:none}
ourvend/capabilities.html:12:.breadcrumbs span{margin:0 6px}
ourvend/capabilities.html:14:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
ourvend/capabilities.html:16:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
ourvend/capabilities.html:17:</style>homeourvendmachine
Home›OurVend›Page

Qué se puede hacer

Operations Monitoring

Operations Monitoring

En la UI aparecen acciones como:
Queryf07b28e4-ad64-4aac-9bb9-229eb72bd307×

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /MachineOverview/RefreshAudit/, /NotificationInfo/InsertNisID, /OperateMonitor/ClearErrJson, /OperateMonitor/GetVersionGrid, /OperateMonitor/ListJson/?firstload=0

Status Monitoring

En la UI aparecen acciones como:
Queryf07b28e4-ad64-4aac-9bb9-229eb72bd307×

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /MachineOverview/RefreshAudit/, /NotificationInfo/InsertNisID, /OperateMonitor/ClearErrJson, /OperateMonitor/GetVersionGrid, /OperateMonitor/ListJson/?firstload=0

Sales Monitoring

En la UI aparecen acciones como:
Amount receivableCard swiping recordDoor opening/closing recordGive-out recordQueryQuery detailsReplenishment recordSales summary

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /MachineOverview/RefreshAudit/, /SaleDetail/AmountListJson, /SaleMonitor/AmountReceivable, /SaleMonitor/CashJson/, /SaleMonitor/DoorStatusJson

Machine Stockout Query

En la UI aparecen acciones como:
ExeclExportExportQuery×

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /Replenishment/GetFull, /Replenishment/GetProductInfo, /Replenishment/GetStockout, /Replenishment/ReplenishmentList2, /SaleSummarize/GetMachineID

Replenishment Suggestions

En la UI aparecen acciones como:
ConfirmExcelExportExport all dataExport the data in current pageGenerate replenishment adviceQuery×

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /ReplenishmentProposal/ListJson, /ReplenishmentProposal/ListJson2

History

History

En la UI aparecen acciones como:
2026-05-21Amount receivableCard swiping recordDoor opening/closing recordExport all dataExport payment methodExport the data in current pageExport vending machine

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /SaleDetail/AmountListJson, /SaleDetail/MachineListJsoin, /SaleMonitor/AmountReceivable, /SaleMonitor/CashJson/, /SaleMonitor/DoorStatusJson

Sales Details

En la UI aparecen acciones como:
2026-05-21Amount receivableCard swiping recordDoor opening/closing recordExport all dataExport payment methodExport the data in current pageExport vending machine

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /SaleDetail/AmountListJson, /SaleDetail/MachineListJsoin, /SaleMonitor/AmountReceivable, /SaleMonitor/CashJson/, /SaleMonitor/DoorStatusJson

Shipment Records

En la UI aparecen acciones como:
00:00:002026-05-2123:59:59CloseConfirmExcelSchedule downloadExportExport all data

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /OutReport/GetOneKeyOutOrderNumber, /OutReport/ListJson/?firstload=0, /OutReport/ReserveList, /OutReport/SubmitRemoteShip, /SaleSummarize/GetMachineID

Cash/Coin Records

En la UI aparecen acciones como:
00:00:002026-05-2123:59:59ExportExport all dataExport the data in current pageQuery×

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /SaleSummarize/GetMachineID, /StreamReport/ListJson/?firstload=0

Machine Alarms

En la UI aparecen acciones como:
2026-05-21ExportExport all dataExport the data in current pageOne click clearQuery×

Endpoints internos visibles: /Alarm/ClearMidFault, /Alarm/ClearMidListFault, /Alarm/ListJson/?firstload=0, /AssetsManage/GetStringMachineGroup, /SaleSummarize/GetMachineID

System Settings

System Settings

En la UI aparecen acciones como:
AddCloseConfirmQuerySubmitUser group management×

Endpoints internos visibles: /Role/AddRole, /Role/DelRole, /Role/EditRole, /Role/GetRole, /Role/ListJson, /Role/RoleList

Role Management

En la UI aparecen acciones como:
AddCloseConfirmQuerySubmitUser group management×

Endpoints internos visibles: /Role/AddRole, /Role/DelRole, /Role/EditRole, /Role/GetRole, /Role/ListJson, /Role/RoleList

User Management

En la UI aparecen acciones como:
AddCloseConfirmQuerySubmitToday's earnings report×

Endpoints internos visibles: /User/AddUser, /User/Delete, /User/EditUser, /User/GetGroup, /User/GetRole, /User/GetUser

Machine Management

Machine Management

En la UI aparecen acciones como:
AddCloseQuerySubmit×

Endpoints internos visibles: /MachineGroup/AddMachineGroup, /MachineGroup/Delete, /MachineGroup/Edit_MG, /MachineGroup/GetStringMachineGroup, /MachineGroup/GetUser, /MachineGroup/ListJson

Machine Group Settings

En la UI aparecen acciones como:
AddCloseQuerySubmit×

Endpoints internos visibles: /MachineGroup/AddMachineGroup, /MachineGroup/Delete, /MachineGroup/Edit_MG, /MachineGroup/GetStringMachineGroup, /MachineGroup/GetUser, /MachineGroup/ListJson

Cabinet Management

En la UI aparecen acciones como:
02026-05-21 03:09:44Alipay settled inCancelCloseDownloadEnteringExcelExport

Endpoints internos visibles: /AssetsManage/AddAM, /AssetsManage/Delete, /AssetsManage/EditAM, /AssetsManage/EditSelIfBox, /AssetsManage/GetAM, /AssetsManage/GetCity

Track Management

En la UI aparecen acciones como:
1AuditCloseDeleteEmpty allExportMachine cloningQuery

Endpoints internos visibles: /AssetsManage/GetMachineMiAccuracy, /AssetsManage/GetStringMachineGroup, /SaleSummarize/GetMachineGroup, /SaleSummarize/GetMachineID, /Selection/AddWarm, /Selection/Audit

Commodity Management

Commodity Management

En la UI aparecen acciones como:
AddCloseExcelExportExport all dataExport the data in current pageManually refreshQuerySubmit

Endpoints internos visibles: /CommodityType/AddCMT, /CommodityType/CMTEdit, /CommodityType/Delete, /CommodityType/ListJson, /CommodityType/RefCmt

Commodity Categories

En la UI aparecen acciones como:
AddCloseExcelExportExport all dataExport the data in current pageManually refreshQuerySubmit

Endpoints internos visibles: /CommodityType/AddCMT, /CommodityType/CMTEdit, /CommodityType/Delete, /CommodityType/ListJson, /CommodityType/RefCmt

Manufacturer Management

En la UI aparecen acciones como:
AddCloseExcelExportExport all dataExport the data in current pageQuerySubmit×

Endpoints internos visibles: /VendorManage/AddVM, /VendorManage/Delete, /VendorManage/EditVM, /VendorManage/GetVM, /VendorManage/ListJson

Commodity Information

En la UI aparecen acciones como:
AddApply for WeChat Payment for 18 yearsApply for the 18-year-old restriction on AlipayBatch uploadCloseDeleteDownloadDownload commodity from upper level

Endpoints internos visibles: /CommodityInfo/AddCI, /CommodityInfo/AuditList, /CommodityInfo/ChangeTop, /CommodityInfo/Delete, /CommodityInfo/DownLoad, /CommodityInfo/EditCI

Analytics

Analytics

En la UI aparecen acciones como:
2026-05-21ExcelExportExcelSchedule downloadExcelSchedule download(Commodity)Export all dataExport the data in current pageQuerySchedule download

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /SaleSummarize/GetMachineGroup, /SaleSummarize/GetMachineID, /SaleSummarize/GetProductNameList, /SaleSummarize/ListHH, /SaleSummarize/ListHHexp

Sales Summary

En la UI aparecen acciones como:
2026-05-21ExcelExportExcelSchedule downloadExcelSchedule download(Commodity)Export all dataExport the data in current pageQuerySchedule download

Endpoints internos visibles: /AssetsManage/GetStringMachineGroup, /SaleSummarize/GetMachineGroup, /SaleSummarize/GetMachineID, /SaleSummarize/GetProductNameList, /SaleSummarize/ListHH, /SaleSummarize/ListHHexp

Acciones importantes detectadas

ourvend/capabilities.html:19:
Abrir puerta de máquina — /AssetsManage/OpenMachineDoor

ourvend/capabilities.html:24:
Clonar configuración entre máquinas — /Selection/ClMachine

ourvend/details.html:10:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
ourvend/details.html:11:.breadcrumbs a{color:#666;text-decoration:none}
ourvend/details.html:12:.breadcrumbs span{margin:0 6px}
ourvend/details.html:14:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
ourvend/details.html:16:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
ourvend/details.html:17:</style>homeourvendmachine
Home›OurVend›Page

Detalle completo

Vista más densa, por si necesitás volver al detalle rápido.

page en	page zh	url	acciones visibles	superficie

Operations Monitoring	运营监控	/OperateMonitor/Index	f07b28e4-ad64-4aac-9bb9-229eb72bd307, Query, ×, ×	8 endpoints

Status Monitoring	状态监控	/OperateMonitor/Index	f07b28e4-ad64-4aac-9bb9-229eb72bd307, Query, ×, ×	8 endpoints

Sales Monitoring	销售监控	/SaleMonitor/Index	Query details, Query, Trading Flow, Sales summary, Card swiping record, Give-out record, Door opening/closing record, Replenishment record	12 endpoints

Machine Stockout Query	机器缺货查询	/Replenishment/Index	Export, Query, ×, ×, ExeclExport	6 endpoints

Replenishment Suggestions	补货建议	/ReplenishmentProposal/Index	Query, Generate replenishment advice, ExcelExport, ×, Export the data in current page, Export all data, ×, Confirm	3 endpoints

History	历史记录	/SaleDetail/Index	2026-05-21, 2026-05-21, Export vending machine, Export payment method, Query details, Query, Trading Flow, Sales summary	11 endpoints

Sales Details	销售明细	/SaleDetail/Index	2026-05-21, 2026-05-21, Export vending machine, Export payment method, Query details, Query, Trading Flow, Sales summary	11 endpoints

Shipment Records	出货记录	/OutReport/Index	2026-05-21, 00:00:00, 2026-05-21, 23:59:59, ExcelSchedule download, Export, Query, ×	6 endpoints

Cash/Coin Records	钱币记录	/StreamReport/Index	2026-05-21, 00:00:00, 2026-05-21, 23:59:59, Query, Export, ×, Export the data in current page	3 endpoints

Machine Alarms	机器报警	/Alarm/Index	2026-05-21, 2026-05-21, Query, One click clear, Export, ×, Export the data in current page, Export all data	5 endpoints

System Settings	系统设置	/Role/Index	Add, User group management, ×, Close, Submit, Query, Add, ×	8 endpoints

Role Management	角色管理	/Role/Index	Add, User group management, ×, Close, Submit, Query, Add, ×	8 endpoints

User Management	用户管理	/User/Index	Query, Add, ×, Close, Submit, Query, Add, ×	10 endpoints

Machine Management	货机管理	/MachineGroup/Index	Query, Add, ×, Query, Close, Submit, ×, Close	7 endpoints

Machine Group Settings	货机组设置	/MachineGroup/Index	Query, Add, ×, Query, Close, Submit, ×, Close	7 endpoints

Cabinet Management	机柜管理	/AssetsManage/Index	Query, ExcelExport, Query, Query, Alipay settled in, ×, check the details, View list	29 endpoints

Track Management	货道管理	/Selection/Index	Query, Audit, Machine cloning, Quick setting of warning quantity, Delete, Empty all, Export, ×	27 endpoints

Commodity Management	商品管理	/CommodityType/Index	Query, Add, ExcelExport, Manually refresh, ×, Close, Submit, ×	5 endpoints

Commodity Categories	商品类别	/CommodityType/Index	Query, Add, ExcelExport, Manually refresh, ×, Close, Submit, ×	5 endpoints

Manufacturer Management	厂商管理	/VendorManage/Index	Query, Add, ExcelExport, ×, Close, Submit, ×, Close	5 endpoints

Commodity Information	商品信息	/CommodityInfo/Index	Add, Download commodity from upper level, Template Download, Batch upload, Delete, Apply for WeChat Payment for 18 years, Apply for the 18-year-old restriction on Alipay, Download	15 endpoints

Analytics	统计分析	/SaleSummarize/Index	2026-05-21, 2026-05-21, Query, ExcelExport, ExcelSchedule download(Commodity), ExcelSchedule download, ×, Export the data in current page	24 endpoints

Sales Summary	销售汇总统计	/SaleSummarize/Index	2026-05-21, 2026-05-21, Query, ExcelExport, ExcelSchedule download(Commodity), ExcelSchedule download, ×, Export the data in current page	24 endpoints

Home	首页	/YSTemplet/Index	Toggle navigation, ￥, ballbox, Change password, Exit, Online, Yunshu Info Technology Co Ltd, Version description	12 endpoints

Home	首页	/YSTemplet/Index	Toggle navigation, ￥, ballbox, Change password, Exit, Online, Yunshu Info Technology Co Ltd, Version description	12 endpoints

ourvend/control-verdict.html:10:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
ourvend/control-verdict.html:11:.breadcrumbs a{color:#666;text-decoration:none}
ourvend/control-verdict.html:12:.breadcrumbs span{margin:0 6px}
ourvend/control-verdict.html:14:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
ourvend/control-verdict.html:16:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
ourvend/control-verdict.html:17:</style>homeourvendmachine
Home›OurVend›Page

ourvend/control-verdict.html:18:

Veredicto API / control

ourvend/capabilities-clean.html:5:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
ourvend/capabilities-clean.html:6:.breadcrumbs a{color:#666;text-decoration:none}
ourvend/capabilities-clean.html:7:.breadcrumbs span{margin:0 6px}
ourvend/capabilities-clean.html:9:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
ourvend/capabilities-clean.html:11:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
ourvend/capabilities-clean.html:12:</style>homeourvendmachine
Home›OurVend›Page

ourvend/capabilities-clean.html:13:

Capacidades

machine/index.html:1:<!doctype html><meta charset="utf-8"><title>Ballbox / Machine</title>homeourvendmachine
Home›Machine

Machine

Ballbox machine

Máquina TCN: docs, consolidaciones y material de investigación.

Docs

Documentación principal y fuentes desde esta misma página.

Verdad comprobada

Signal del manual oficial

Índice completo

Fuentes

Parte 1

Parte 2

Parte 3

Parte 4

Parte 5

Parte 6

Relacionado

OurVend

Veredicto API/control

machine/docs/index.html:1:<!doctype html><meta charset="utf-8"><title>Ballbox / Machine / Docs</title>homemachineourvend
Home›Machine›Docs

Docs

Ballbox docs

Separación semántica entre consolidaciones y fuentes.

Consolidaciones

Verdad comprobada

Signal del manual oficial

Fuentes convertidas

parte-1-documentacion-maestra-de-investigacion-y-operacion

parte-2-android-usb-publicidad-exportaciones-y-sistema-interno

parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura

parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion

parte-5-manual-operativo-ballbox

parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica

machine/docs/manual-signal.html:8:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/manual-signal.html:9:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/manual-signal.html:10:.breadcrumbs span{margin:0 6px}
machine/docs/manual-signal.html:12:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/manual-signal.html:14:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/manual-signal.html:16:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Signal del manual oficial

machine/docs/manual-signal.html:17:
Docs / consolidado

Machine / consolidado

Signal del manual oficial

machine/docs/manual-signal.html:53:
Machine ID

machine/docs/manual-signal.html:205:
Prioridad de inspección real: login local, Information setting, TcnFolder, VideoAndImageAd, Remote ad download, Server IP, Port number y Machine ID.

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:26:
Docs / parte fuente

Machine / source

PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION.docx

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:30:
Máquinas Expendedoras TCN / OurVend

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:57:
Evaluar independencia futura respecto de OurVend.

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:67:
Conexión OurVend.

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:90:
Machine ID observado:

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:116:
OurVend

machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html:137:
OurVend Cloud

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:26:
Docs / parte fuente

Machine / source

PARTE 4 - Ingenieria Inversa Traducciones Backend Propio y Plan de Investigacion

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 4 - Ingenieria Inversa Traducciones Backend Propio y Plan de Investigacion.docx

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:38:
OurVend

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:60:
independientemente de OurVend.

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:207:
Machine ID

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:229:
BallBox podría reemplazar parcialmente OurVend.

machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html:285:
OurVend

machine/docs/verified-truth.html:8:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/verified-truth.html:9:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/verified-truth.html:10:.breadcrumbs span{margin:0 6px}
machine/docs/verified-truth.html:12:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/verified-truth.html:14:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/verified-truth.html:16:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Verdad comprobada

machine/docs/verified-truth.html:17:
Docs / consolidado

Machine / consolidado

Verdad comprobada

machine/docs/verified-truth.html:23:
Fuente: partes 1–6 de la documentación TCN / OurVend.

machine/docs/verified-truth.html:33:
Se confirmaron: conexión WiFi, acceso Android, acceso backstage, configuración de slots, prueba de motores, prueba de expulsión, conexión OurVend, modificación remota de stock, modificación remota de precios, importación USB, publicidad por imágenes, publicidad por video, exportación de configuración, exportación de logs y exportación de base SQLite.

machine/docs/verified-truth.html:54:
Machine ID observado en configuración: 2601070188.

machine/docs/verified-truth.html:58:
OurVend cumple rol de nube para stock, precios, sincronización y monitoreo.

machine/docs/verified-truth.html:65:
Cloud / OurVend confirmado

machine/docs/verified-truth.html:67:
Se observaron URLs de acceso OurVend:

machine/docs/verified-truth.html:70:
Desde OurVend se confirmó modificación remota de stock.

machine/docs/verified-truth.html:71:
Desde OurVend se confirmó modificación remota de precio.

machine/docs/verified-truth.html:73:
Se confirmó que la máquina reporta información operativa al backend, incluyendo al menos Machine ID, slots, precios, stock, estado y SKU.

machine/docs/verified-truth.html:89:
Machine ID: 2601070188

machine/docs/verified-truth.html:139:
máquina visible en OurVend

machine/docs/verified-truth.html:154:
Hipótesis sobre control total sin OurVend.

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:26:
Docs / parte fuente

Machine / source

PARTE 2 - Android USB Publicidad Exportaciones y Sistema Interno

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 2 - Android USB Publicidad Exportaciones y Sistema Interno.docx

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:210:
sin depender de aprobación visual OurVend.

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:285:
Machine ID:

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:310:
OurVend posee infraestructura para distribución de contenido.

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:331:
Machine ID

machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html:340:
OurVend

machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:26:
Docs / parte fuente

Machine / source

PARTE 3 - EasyCoin BillWallet Operacion Comercial y Arquitectura Futura

machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 3 - EasyCoin BillWallet Operacion Comercial y Arquitectura Futura.docx

machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:231:
OurVend

machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html:250:
Sin depender operativamente de OurVend.

machine/docs/parte-5-manual-operativo-ballbox.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-5-manual-operativo-ballbox.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-5-manual-operativo-ballbox.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-5-manual-operativo-ballbox.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-5-manual-operativo-ballbox.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-5-manual-operativo-ballbox.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-5-manual-operativo-ballbox.html:26:
Docs / parte fuente

Machine / source

PARTE 5 - Manual Operativo BallBox

machine/docs/parte-5-manual-operativo-ballbox.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 5 - Manual Operativo BallBox.docx

machine/docs/parte-5-manual-operativo-ballbox.html:72:
Ingresar a OurVend.

machine/docs/parte-5-manual-operativo-ballbox.html:214:
Machine ID

machine/docs/parte-5-manual-operativo-ballbox.html:218:
Machine ID

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:17:.breadcrumbs{font-size:14px;color:#666;margin:6px 0 18px}
machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:18:.breadcrumbs a{color:#666;text-decoration:none}
machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:19:.breadcrumbs span{margin:0 6px}
machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:21:.kicker{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.04em}
machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:23:@media (max-width: 640px){body{font-size:22px;line-height:1.8} .card{padding:18px} h1{font-size:36px;line-height:1.08} h2{font-size:28px;line-height:1.12} nav.top{gap:8px} nav.top a{padding:6px 0; display:inline-block} .breadcrumbs{font-size:13px} .grid{grid-template-columns:1fr} }
machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:25:iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Parte fuente

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:26:
Docs / parte fuente

Machine / source

PARTE 6 - Ingenieria Inversa Avanzada y Autonomia Tecnologica

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:27:
Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 6 - Ingenieria Inversa Avanzada y Autonomia Tecnologica.docx

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:36:
OurVend

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:46:
OurVend

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:64:
OurVend

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:108:
¿Hay carpetas por Machine ID?

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:191:
Reemplazar OurVend.

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:195:
sin intervención directa de OurVend.

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:203:
aunque OurVend siga existiendo.

machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html:225:
Machine ID

[Showing lines 18-164 of 164 (50.0KB limit). Full output: /tmp/pi-bash-e9342fabb387d790.log]


<!doctype html><meta charset="utf-8"><title>Verdad comprobada</title>
iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Verdad comprobada

Docs / consolidado

Machine / consolidado

Verdad comprobada

Consolidado  hecho desde las partes 1–6. Acá queda sólo lo confirmado. Hipótesis, dudas y líneas de investigación quedaron afuera.

Alcance

Fuente: partes 1–6 de la documentación TCN / OurVend.

Criterio: incluir sólo hechos marcados o descritos como confirmados/observados/probados.

Excluir: hipótesis, interpretación no validada, preguntas abiertas y futuros posibles.

Estado general confirmado

La máquina TCN quedó operativa a nivel mecánico y de conectividad básica.

Se confirmaron: conexión WiFi, acceso Android, acceso backstage, configuración de slots, prueba de motores, prueba de expulsión, conexión OurVend, modificación remota de stock, modificación remota de precios, importación USB, publicidad por imágenes, publicidad por video, exportación de configuración, exportación de logs y exportación de base SQLite.

Se confirmó integración operativa con EasyCoin.

Se confirmó integración operativa con BillWallet.

Se confirmó cobro real con liberación correcta de producto.

Arquitectura técnica confirmada

Modelo observado: TCN-D720-10C(22SP).

Orientación: vertical.

Main board observada: TCN-STANDJS.

Puerto serie principal observado: /dev/ttyS2.

Baud rate observado: 9600.

Servidor configurado observado: qrc.ourvend.com.

Puerto configurado observado: 4150.

Aplicación Android observada: TCN-SD-05-V1.0.0.13-20251210.01.

Android observado: Rockchip K518, Android 7.1.2.

Memoria observada: 1.95 GB RAM.

Almacenamiento observado: 7.28 GB.

Machine ID observado en configuración: 2601070188.

Arquitectura confirmada al nivel operativo observado:

OurVend cumple rol de nube para stock, precios, sincronización y monitoreo.

Android cumple rol de interfaz gráfica, publicidad multimedia, idioma y sincronización con servidor.

Main board cumple rol de control de motores, sensores, bandejas y dispensado.

Cloud / OurVend confirmado

Se observaron URLs de acceso OurVend:

https://os.ourvend.com/Account/Login

https://oshw.ourvend.com/Account/HLogin

Desde OurVend se confirmó modificación remota de stock.

Desde OurVend se confirmó modificación remota de precio.

Se confirmó sincronización con la máquina.

Se confirmó que la máquina reporta información operativa al backend, incluyendo al menos Machine ID, slots, precios, stock, estado y SKU.

Publicidad / exportaciones / sistema interno confirmado

Se confirmó publicidad local por imágenes.

Se confirmó publicidad local por video.

Se confirmó importación por USB.

Se confirmó exportación de configuración.

Se confirmó exportación de logs.

Se confirmó exportación de base SQLite.

En TrayPreferences se observaron:

Servidor: qrc.ourvend.com

Puerto: 4150

Machine ID: 2601070188

Idioma: en

Idioma WM: español

Se observó is_use_language_package = true.

Se observó AdvertRemote = false.

Se observó RemoteAdSysType configurado.

Se observó infraestructura FTP/config relacionada con contenido remoto:

Host: ad.ourvend.com

Usuario: ysftp

También quedó documentado que existía una contraseña en la configuración exportada, pero ese valor no aparece en este consolidado porque no quedó expuesto aquí como hecho recuperado.

Se observó URL de actualizaciones: tfs.android.tcnvmms.com.

Operación mecánica y de stock confirmada

Slot Management funciona correctamente.

Se pudieron probar motores.

Se pudieron probar canales.

Se pudo validar expulsión/liberación de producto.

La operación de stock puede ajustarse desde cloud y verificarse contra stock real.

Pagos confirmados

La empresa usada para pagos es EasyCoin.

La gestión de dispositivos y cuentas se realiza mediante BillWallet.

Se recibió e instaló un dispositivo EasyCoin con personal de la empresa.

Resultado de instalación: exitosa.

Flujo de compra real confirmado:

usuario selecciona producto

usuario realiza pago

EasyCoin recibe confirmación

la máquina libera el canal

el producto cae correctamente

BillWallet administra la asociación del dispositivo con una cuenta de usuario.

Un usuario BillWallet puede administrar múltiples dispositivos.

Todos los dispositivos asociados a ese usuario cobran al mismo MercadoPago.

Cada cuenta BillWallet genera un QR de pago.

Si cambia MercadoPago, cambia el QR y debe reemplazarse el QR físico.

Checklist operativo confirmado

Para validar una máquina operativa se usa al menos este criterio visible:

máquina visible en OurVend

comunicación activa

stock sincronizado

precios sincronizados

motores probados

compra real exitosa

QR correcto y visible

QR legal pegado detrás de la heladera

Qué NO entra en este consolidado

Hipótesis sobre ImageGoods, Text, v3Skins, branding, traducciones completas y backend propio.

Hipótesis sobre control total sin OurVend.

Hipótesis sobre uso exacto del FTP para ads, idiomas o skins.

Preguntas abiertas sobre protocolo TCP, autenticación y reemplazo de vendor backend.

Uso recomendado

Tomar este documento como base corta de verdad operativa actual.

Usar las partes 2–6 sólo para investigación adicional, no como fuente única de verdad confirmada.

Seguir leyendo

Volver al índice docs

Verdad comprobada

Signal del manual oficial


<!doctype html><meta charset="utf-8"><title>Signal del manual oficial</title>
iniciocoordinaciónourvend map
Analysis›Coordinación›Docs›Signal del manual oficial

Docs / consolidado

Machine / consolidado

Signal del manual oficial

Documento  separado. Resume sólo señal útil extraída de las fotos del manual oficial. No reemplaza verdad comprobada ni partes fuente.

Qué aporta este doc

Captura señal operativa del manual TCN que sirve para investigar la máquina real.

No mezcla esto con la verdad comprobada de la máquina Ballbox.

Todo lo de acá debe leerse como: “el manual oficial TCN muestra/indica esto”.

Acceso local / menú

El manual muestra un login local de menú con password original 000000.

El menú mostrado incluye:

Slots management

Goods management

Password

Information settings

Payment setting

Program update

Serial port settings

Setup tool

Sales data

Function set

Information setting

El manual muestra campos de configuración para:

Server IP

Port number

Machine ID

Advertising setting

Pay tips

Price unit

Pay effective time

Ad download polling time

Standby picture time

Play image interval time

display the number of goods per page

number of slots digit

price decimal point

También muestra toggles/opciones como:

Standby advertisement display

Full screen

Ads on the bottom of the screen

Standby picture full screen display

Show type

Voice prompt

show single code

show shopping

check app foreground

Display touch prompt text

Use printer

Remote ad download

Remote ads / assets

El manual muestra estructura de carpetas bajo TcnFolder.

Carpetas observadas:

TcnFolder\ImageGoods

TcnFolder\VideoAndImageAd

TcnFolder\ImageScreen

TcnFolder\ImageBackground

TcnFolder\ImageHelp

La tabla del manual indica:

ImageGoods = imágenes de productos.

VideoAndImageAd = ads locales de video/imagen y también ads remotos descargados.

ImageScreen = standby full-screen video/picture ads.

ImageBackground = background picture.

ImageHelp = helping picture / ayuda.

Formatos soportados mostrados por el manual incluyen combinaciones de:

jpg, jpeg, png, gif

mp4, mkv, avi, wmv, flv

Import local por USB

El manual muestra flujo Update info with U disk.

Indica crear carpeta USB TcnImageGoods.

Indica crear archivo Excel tcn_product.xlsx.

La tabla ejemplo incluye columnas para:

slot number

product name

types of goods

product introduction

pictures of goods

product code

price

stock quantity

slot capacity

Backoffice / modificación remota

El manual describe Remote modification of slots information.

Indica que con la máquina online se usa cuenta WeChat subscription o browser para loguear al background system.

Desde ahí se puede elegir vending machine y slot, y definir precio, capacidad e imágenes.

También indica que settings del background system pueden sincronizarse a la máquina.

Serial / placas

El manual muestra dos boards de referencia:

TCN140613

TCN161114 (serial port board)

En serial port setup se muestran múltiples dispositivos/puertos, incluyendo variantes tipo ttymxc*, ttyGS* y ttyUSB*.

El manual marca baud rate sugerido por board:

19200 para main board TCN140613

38400 para main board TCN161114

Sales data local

El manual muestra pantalla local Sales data.

Incluye contadores/montos para:

sales count

sales amount

cash

bank card one / two

IC card

WeChat

Alipay

take goods code

remount

give

Main board interfaces

El manual muestra interfaz física con referencias a:

WiFi antenna

3G antenna

SD card

U disk / OTG line

network

touch screen / monitor

Function set / menu settings

El manual muestra controles locales avanzados para:

temperature zones / heat / cool / close

drop sensor

coin fill

clear fault

query board faults

shipment inspection

port door control

diaphragm switch

parameter recovery factory value

set spring slot / belt slot

group and layer parameters

corriente, pasos, velocidad, sensor, bloqueo y otros parámetros mecánicos

Esto confirma que el menú local expone control profundo, pero no implica que deba tocarse sin cuidado.

Uso práctico recomendado

Usar este doc como mapa de dónde mirar en la máquina real.

Prioridad de inspección real: login local, Information setting, TcnFolder, VideoAndImageAd, Remote ad download, Server IP, Port number y Machine ID.

Seguir leyendo

Volver al índice docs

Verdad comprobada

Signal del manual oficial


<!doctype html><meta charset="utf-8"><title>Ballbox / Machine / Docs</title>homemachineourvend
Home›Machine›Docs

Docs

Ballbox docs

Separación semántica entre consolidaciones y fuentes.

Consolidaciones

Verdad comprobada

Signal del manual oficial

Fuentes convertidas

parte-1-documentacion-maestra-de-investigacion-y-operacion

parte-2-android-usb-publicidad-exportaciones-y-sistema-interno

parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura

parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion

parte-5-manual-operativo-ballbox

parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica


**Fixing documentation navigation**

I need to address the navigation paths in the documentation, especially considering removing empty kicker divs. There are broken links to coordination and capabilities within the documentation pages, which I need to fix. I’ll also patch the navigation and breadcrumbs on the docs pages. It seems like the machine/docs/index navigation home paths might be incorrect too, so I should investigate that. I want to ensure the documentation is clear and functional!

python3 - <<'PY'
from pathlib import Path
site=Path('/home/sebas/work/projects/vending-status-pages/site')
# ourvend pages: remove empty kicker blocks and page self-link in breadcrumbs
for p in (site/'ourvend').glob('*.html'):
    t=p.read_text()
    t=t.replace('

','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    t=t.replace('›Page','')
    p.write_text(t)

# machine root: remove redundant kicker + related broken? keep related link valid
p=site/'machine'/'index.html'
t=p.read_text()
t=t.replace('
Machine
','')
p.write_text(t)

# docs index: fix nav paths and remove kicker
p=site/'machine'/'docs'/'index.html'
t=p.read_text()
t=t.replace('homemachineourvend','homemachineourvend')
t=t.replace('
Docs
','')
p.write_text(t)

# all docs pages: rewrite legacy nav/breadcrumbs, remove redundant kickers
for p in (site/'machine'/'docs').glob('*.html'):
    if p.name == 'index.html':
        continue
    t=p.read_text()
    t=t.replace('iniciocoordinaciónourvend map','homemachineourvend')
    t=t.replace('
Analysis›Coordinación›Docs›Verdad comprobada
','
Home›Machine›Docs
')
    t=t.replace('
Analysis›Coordinación›Docs›Signal del manual oficial
','
Home›Machine›Docs
')
    # source docs generic
    import re
    t=re.sub(r'
Analysis›Coordinación›Docs›Parte fuente
','
Home›Machine›Docs
',t)
    t=t.replace('
Docs / consolidado

Machine / consolidado
','')
    t=t.replace('
Docs / parte fuente

Machine / source
','')
    p.write_text(t)
print('done')
PY
cd /home/sebas/work/projects/vending-status-pages/site && grep -RInE 'coordination\.html|capabilities\.html">ourvend map|Analysis|Docs /|Machine /|Page|../../../index\.html|../../../ourvend' ourvend machine | sed -n '1,220p'


done
machine/docs/index.html:1:<!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine / Docs</title><style>body{font:20px/1.76 system-ui,-apple-system,sans-serif;max-width:1040px;margin:20px auto;padding:0 14px;color:#111;background:#fff}


<!doctype html><meta charset="utf-8"><title>Ballbox / Machine / Docs</title>homemachineourvend
Home›Machine›Docs

Ballbox docs

Separación semántica entre consolidaciones y fuentes.

Consolidaciones

Verdad comprobada

Signal del manual oficial

Fuentes convertidas

parte-1-documentacion-maestra-de-investigacion-y-operacion

parte-2-android-usb-publicidad-exportaciones-y-sistema-interno

parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura

parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion

parte-5-manual-operativo-ballbox

parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica


<!doctype html><meta charset="utf-8"><title>Verdad comprobada</title>
homemachineourvend
Home›Machine›Docs

Verdad comprobada

Consolidado  hecho desde las partes 1–6. Acá queda sólo lo confirmado. Hipótesis, dudas y líneas de investigación quedaron afuera.

Alcance

Fuente: partes 1–6 de la documentación TCN / OurVend.

Criterio: incluir sólo hechos marcados o descritos como confirmados/observados/probados.

Excluir: hipótesis, interpretación no validada, preguntas abiertas y futuros posibles.

Estado general confirmado

La máquina TCN quedó operativa a nivel mecánico y de conectividad básica.

Se confirmaron: conexión WiFi, acceso Android, acceso backstage, configuración de slots, prueba de motores, prueba de expulsión, conexión OurVend, modificación remota de stock, modificación remota de precios, importación USB, publicidad por imágenes, publicidad por video, exportación de configuración, exportación de logs y exportación de base SQLite.

Se confirmó integración operativa con EasyCoin.

Se confirmó integración operativa con BillWallet.

Se confirmó cobro real con liberación correcta de producto.

Arquitectura técnica confirmada

Modelo observado: TCN-D720-10C(22SP).

Orientación: vertical.

Main board observada: TCN-STANDJS.

Puerto serie principal observado: /dev/ttyS2.

Baud rate observado: 9600.

Servidor configurado observado: qrc.ourvend.com.

Puerto configurado observado: 4150.

Aplicación Android observada: TCN-SD-05-V1.0.0.13-20251210.01.

Android observado: Rockchip K518, Android 7.1.2.

Memoria observada: 1.95 GB RAM.

Almacenamiento observado: 7.28 GB.

Machine ID observado en configuración: 2601070188.

Arquitectura confirmada al nivel operativo observado:

OurVend cumple rol de nube para stock, precios, sincronización y monitoreo.

Android cumple rol de interfaz gráfica, publicidad multimedia, idioma y sincronización con servidor.

Main board cumple rol de control de motores, sensores, bandejas y dispensado.

Cloud / OurVend confirmado

Se observaron URLs de acceso OurVend:

https://os.ourvend.com/Account/Login

https://oshw.ourvend.com/Account/HLogin

Desde OurVend se confirmó modificación remota de stock.

Desde OurVend se confirmó modificación remota de precio.

Se confirmó sincronización con la máquina.

Se confirmó que la máquina reporta información operativa al backend, incluyendo al menos Machine ID, slots, precios, stock, estado y SKU.

Publicidad / exportaciones / sistema interno confirmado

Se confirmó publicidad local por imágenes.

Se confirmó publicidad local por video.

Se confirmó importación por USB.

Se confirmó exportación de configuración.

Se confirmó exportación de logs.

Se confirmó exportación de base SQLite.

En TrayPreferences se observaron:

Servidor: qrc.ourvend.com

Puerto: 4150

Machine ID: 2601070188

Idioma: en

Idioma WM: español

Se observó is_use_language_package = true.

Se observó AdvertRemote = false.

Se observó RemoteAdSysType configurado.

Se observó infraestructura FTP/config relacionada con contenido remoto:

Host: ad.ourvend.com

Usuario: ysftp

También quedó documentado que existía una contraseña en la configuración exportada, pero ese valor no aparece en este consolidado porque no quedó expuesto aquí como hecho recuperado.

Se observó URL de actualizaciones: tfs.android.tcnvmms.com.

Operación mecánica y de stock confirmada

Slot Management funciona correctamente.

Se pudieron probar motores.

Se pudieron probar canales.

Se pudo validar expulsión/liberación de producto.

La operación de stock puede ajustarse desde cloud y verificarse contra stock real.

Pagos confirmados

La empresa usada para pagos es EasyCoin.

La gestión de dispositivos y cuentas se realiza mediante BillWallet.

Se recibió e instaló un dispositivo EasyCoin con personal de la empresa.

Resultado de instalación: exitosa.

Flujo de compra real confirmado:

usuario selecciona producto

usuario realiza pago

EasyCoin recibe confirmación

la máquina libera el canal

el producto cae correctamente

BillWallet administra la asociación del dispositivo con una cuenta de usuario.

Un usuario BillWallet puede administrar múltiples dispositivos.

Todos los dispositivos asociados a ese usuario cobran al mismo MercadoPago.

Cada cuenta BillWallet genera un QR de pago.

Si cambia MercadoPago, cambia el QR y debe reemplazarse el QR físico.

Checklist operativo confirmado

Para validar una máquina operativa se usa al menos este criterio visible:

máquina visible en OurVend

comunicación activa

stock sincronizado

precios sincronizados

motores probados

compra real exitosa

QR correcto y visible

QR legal pegado detrás de la heladera

Qué NO entra en este consolidado

Hipótesis sobre ImageGoods, Text, v3Skins, branding, traducciones completas y backend propio.

Hipótesis sobre control total sin OurVend.

Hipótesis sobre uso exacto del FTP para ads, idiomas o skins.

Preguntas abiertas sobre protocolo TCP, autenticación y reemplazo de vendor backend.

Uso recomendado

Tomar este documento como base corta de verdad operativa actual.

Usar las partes 2–6 sólo para investigación adicional, no como fuente única de verdad confirmada.

Seguir leyendo

Volver al índice docs

Verdad comprobada

Signal del manual oficial


<!doctype html><meta charset="utf-8"><title>Veredicto control</title>
homeourvendmachine
Home›OurVend

Veredicto API / control

Mi lectura

No vi una API oficial pensada para integradores.

Sí vi una API interna de la propia web.

Sí vi una segunda interfaz H5/mobile.

Qué significa eso para Ballbox

Se puede investigar una capa propia arriba de la nube actual.

No conviene asumir estabilidad: vendor puede cambiar endpoints, params o checks.

Lo más realista es elegir 3 a 5 workflows clave y capturar tráfico real.

Workflows que más valen la pena investigar

Abrir puerta

Despacho remoto

Editar precio/slot/producto

Tomar screenshot o leer estado

Upgrade/config remota

Siguiente paso recomendado

Ir a Próximo paso: acciones.

Ver Plan ejecutado: acciones.

Tomar 1 acción de escritura y 1 de lectura.

Capturar tráfico real y validar si hay cliente mínimo posible.


**Checking document links and consistency**

I'm noticing that the control verdict font is inconsistent, though I wasn't specifically asked about that. I should probably validate the document links to ensure there are no broken ones, and I'm wondering if some pages still have self-links that are okay. It's a good idea to check if the source documentation navigation is fixed as well. I think it would help to grep for coordination and capabilities.

cd /home/sebas/work/projects/vending-status-pages/site && grep -RInE 'coordination\.html|Analysis|Docs /|Machine /|Page|\.\./capabilities\.html|\.\./coordination\.html|\.\./index\.html">inicio|ourvend map' ourvend machine | sed -n '1,200p'


machine/docs/index.html:1:<!doctype html><html><head><meta charset="utf-8"><title>Ballbox / Machine / Docs</title><style>body{font:20px/1.76 system-ui,-apple-system,sans-serif;max-width:1040px;margin:20px auto;padding:0 14px;color:#111;background:#fff}


**Checking document source**

I'm trying to figure out the weird issue with the grep command, but it seems like there are no matches except for line one, which refers to "Machine / Docs" in the title. So I guess I need to check the source document file to find what's causing the inconsistency. I’m hoping it’ll clarify things for me! Let’s see what I can find in that document.


<!doctype html><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title>
homemachineourvend
Home›Machine›Docs

PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION

Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION.docx

Ballbox

Documentación Maestra De Investigación Y Operación

Máquinas Expendedoras TCN / OurVend

Versión 1.0 (Bitácora completa)

Propósito Del Documento

Este documento existe para evitar perder conocimiento.

La idea NO es generar un resumen ejecutivo.

La idea es que cualquier integrante de BallBox pueda tomar este documento dentro de seis meses o dos años y continuar exactamente desde el punto donde quedó la investigación.

Por ese motivo se documentan:

Hallazgos confirmados.

Errores encontrados.

Pruebas realizadas.

Hipótesis.

Configuraciones.

Procedimientos.

Dudas pendientes.

Decisiones tomadas.

Incluso si una hipótesis resulta incorrecta, se documenta porque evita repetir experimentos.

Estado Del Proyecto Al Momento De Escribir Este Documento

La investigación comenzó sobre máquinas expendedoras TCN provenientes de China.

Objetivos iniciales:

Comprender funcionamiento interno.

Comprender configuración de software.

Conectar internet.

Configurar productos.

Configurar imágenes.

Configurar publicidad.

Configurar idiomas.

Integrar medios de pago.

Evaluar independencia futura respecto de OurVend.

Al comenzar la investigación prácticamente no existía conocimiento operativo sobre la plataforma.

Actualmente:

Confirmado:

Conexión WiFi.

Acceso Android.

Acceso backstage.

Configuración de slots.

Prueba de motores.

Prueba de expulsión.

Conexión OurVend.

Modificación remota de stock.

Modificación remota de precios.

Importación USB.

Publicidad por imágenes.

Publicidad por video.

Exportación de configuración.

Exportación de logs.

Exportación de base SQLite.

Integración EasyCoin.

Integración BillWallet.

Cobro real con liberación de producto.

Pendiente:

Traducción completa.

Comprensión completa de ImageGoods.

Comprensión completa de Text.

Comprensión completa de v3Skins.

Publicidad remota online.

Comprensión protocolo TCP.

Posible backend propio.

Identificación De La Máquina

Modelo observado:

Tcn-Csc-8C(V49)

Machine ID observado:

2601070188

Resolución:

1920x1080

Orientación:

Vertical

Main Board:

Tcn-Standjs

Puerto serie principal:

/dev/ttyS2

Baud rate:

9600

Servidor configurado:

qrc.ourvend.com

Puerto configurado:

4150

Aplicación Android observada:

Tcn-Sd-05-V1.0.0.13-20251210.01

Android:

Rockchip K518 Android 7.1.2

Memoria observada:

1.95 Gb Ram

Almacenamiento:

7.28 Gb

Arquitectura General Detectada

Luego de múltiples pruebas se concluye que la arquitectura parece dividirse en tres componentes:

OurVend

Responsable de:

nube

stock

precios

sincronización

monitoreo

Android

Responsable de:

interfaz gráfica

publicidad

multimedia

idioma

sincronización con servidor

Main Board

Responsable de:

motores

sensores

bandejas

dispensado

Esquema simplificado:

OurVend Cloud

↓

Android TCN

↓

Main Board

↓

Motores

↓

Producto

Investigación De Red

Primer problema encontrado

La máquina no detectaba:

WiFi local

hotspot

Inicialmente se creyó que:

la antena estaba fallando

era obligatorio usar SIM

Descubrimiento

Se activó:

Maximizar compatibilidad

en iPhone.

Inmediatamente apareció el hotspot.

Conclusión:

La máquina posee restricciones de compatibilidad WiFi.

Hipótesis

Posiblemente:

sólo 2.4GHz

problemas con algunos canales automáticos

problemas con configuraciones modernas

Recomendación BallBox

Si una máquina no detecta red:

probar hotspot

activar maximizar compatibilidad

usar WPA2

usar canal 1

usar canal 6

antes de asumir fallas.

Investigación De Antenas

La máquina posee antena.

EasyCoin posee antena independiente.

Ambos dispositivos se encuentran dentro de estructura metálica.

Hipótesis:

La estructura puede degradar señal.

Posible solución:

sacar antenas al exterior.

Debe probarse en instalaciones reales.

Agregar al checklist:

□ evaluar señal

□ evaluar antena externa

Investigación De Slots

Primer hallazgo importante:

Slot Management funciona correctamente.

Se pudieron:

probar motores

probar canales

expulsar productos

Regla BallBox

Nunca asumir que todos los canales funcionan.

Cada canal debe probarse.

Checklist:

□ Canal 1

□ Canal 2

□ Canal 3

...

hasta validar todos.

Carga De Productos

Tubos de pelotas

Problema encontrado:

si quedan libres en el centro pueden:

girar

rotar

bloquear siguiente tubo

Configuración recomendada

Canal doble.

Apoyados contra pared lateral.

Resultado:

Menor probabilidad de atasco.

Productos textiles

Ejemplos:

medias

grips

bandas

Problema:

pueden deslizarse debajo del espiral.

Si ocurre:

el espiral gira

pero el producto no cae.

Configuración recomendada

Doblar y acomodar.

Verificar físicamente.

Probar múltiples veces.

Nunca asumir.

Qr Legal

Existe QR provisto por despachante.

Debe pegarse:

detrás de la heladera.

Agregar al checklist obligatorio.

No entregar máquina sin QR colocado.

Ourvend

URLs observadas:

Pc:

https://os.ourvend.com/Account/Login

H5:

https://oshw.ourvend.com/Account/HLogin

Funciones Confirmadas En Ourvend

Se confirmó:

modificación remota de stock

modificación remota de precio

sincronización con máquina

Productos

Proceso observado:

crear proveedor

crear categoría

crear producto

Problema encontrado:

la plataforma informa aprobación manual.

Tiempo indicado:

1-2 días hábiles.

Hipótesis:

las imágenes locales de la máquina podrían no depender completamente de esa aprobación.

Pendiente investigar.

Fin Parte 1

Seguir leyendo

Volver al índice docs

Verdad comprobada

Signal del manual oficial


**Checking for issues**

I’m thinking about verifying that there are no broken links. I’m wondering if I can crawl through the content easily. A simple approach could be to use grep for href tags and then do a local check afterward. It's good to be thorough here, but I hope the process goes smoothly without any hiccups! Let’s make sure all the links are working properly to avoid frustrating anyone who uses them.

python3 - <<'PY'
from pathlib import Path
import re
site=Path('/home/sebas/work/projects/vending-status-pages/site')
root_dirs=[site, site/'ourvend', site/'machine', site/'machine'/'docs']
errs=[]
for p in list((site/'ourvend').glob('*.html')) + list((site/'machine').rglob('*.html')) + [site/'index.html']:
    text=p.read_text()
    for href in re.findall(r'href="([^"]+)"', text):
        if href.startswith('http') or href.startswith('#'):
            continue
        target=(p.parent / href).resolve()
        if not target.exists():
            errs.append((str(p.relative_to(site)), href, str(target.relative_to(site.parent)) if target.exists() else str(target)))
print('broken', len(errs))
for e in errs[:50]:
    print(*e)
PY
cd /home/sebas/work/projects/vending-status-pages && git status --short site | sed -n '1,200p'


broken 0
 M site/machine/docs/index.html
 M site/machine/docs/manual-signal.html
 M site/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html
 M site/machine/docs/parte-2-android-usb-publicidad-exportaciones-y-sistema-interno.html
 M site/machine/docs/parte-3-easycoin-billwallet-operacion-comercial-y-arquitectura-futura.html
 M site/machine/docs/parte-4-ingenieria-inversa-traducciones-backend-propio-y-plan-de-investigacion.html
 M site/machine/docs/parte-5-manual-operativo-ballbox.html
 M site/machine/docs/parte-6-ingenieria-inversa-avanzada-y-autonomia-tecnologica.html
 M site/machine/docs/verified-truth.html
 M site/machine/index.html
 M site/ourvend/action-plan.html
 M site/ourvend/actions-next-step.html
 M site/ourvend/capabilities-clean.html
 M site/ourvend/capabilities.html
 M site/ourvend/control-verdict.html
 M site/ourvend/details.html
 M site/ourvend/surfaces.html


cd /home/sebas/work/projects/vending-status-pages && git add site && git commit -m "Clean broken links and redundant breadcrumb labels" && git push origin main && gh workflow run deploy.yml


[main 5ef8c3a] Clean broken links and redundant breadcrumb labels
 17 files changed, 29 insertions(+), 29 deletions(-)
To https://github.com/sebasfavaron/vending-status.git
   e80ce66..5ef8c3a  main -> main


python3 - <<'PY'
import requests,time
urls=[
 'https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html',
 'https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html',
 'https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html'
]
for i in range(8):
    print('round',i+1)
    for u in urls:
        r=requests.get(u,timeout=20)
        print(r.status_code, u, r.text[:130].replace('\n',' '))
    print('---')
    time.sleep(5)
PY


in_progress		deploy	deploy	main	workflow_dispatch	26624305213	17s	2026-05-29T07:28:56Z
completed	success	deploy	deploy	main	workflow_dispatch	26624089442	42s	2026-05-29T07:23:48Z


round 1
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 2
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 3
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 4
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 5
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 6
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 7
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---
round 8
200 https://sebasfavaron.github.io/vending-status/machine/docs/verified-truth.html <!doctype html><html><head><meta charset="utf-8"><title>Verdad comprobada</title><style> body{font:20px/1.76 system-ui,-apple-syst
200 https://sebasfavaron.github.io/vending-status/machine/docs/parte-1-documentacion-maestra-de-investigacion-y-operacion.html <!doctype html><html><head><meta charset="utf-8"><title>PARTE 1 - DOCUMENTACION MAESTRA DE INVESTIGACION Y OPERACION</title><style
200 https://sebasfavaron.github.io/vending-status/ourvend/control-verdict.html <!doctype html><html><head><meta charset="utf-8"><title>Veredicto control</title> <style> body{font:16px/1.55 system-ui,-apple-sys
---


todo

Removed broken links from docs nav/breadcrumbs, removed redundant kicker/sub-label text under breadcrumbs, validated 0 broken local hrefs, pushed and deployed.


Updated #16 (in_progress → completed)

Resume Ballbox FTP investigation


Hecho.

Saqué:
- links rotos en navbars/breadcrumbs
- referencias viejas tipo `coordinación`, `analysis`, `ourvend map`
- texto redundante bajo breadcrumbs:
  - `DOCS / CONSOLIDADO`
  - `MACHINE / CONSOLIDADO`
  - `DOCS / PARTE FUENTE`
  - similares

También limpié:
- breadcrumbs que repetían la misma página como `Page`
- kicker vacío en páginas OurVend/Machine

Validación:
- barrí hrefs locales
- **0 links rotos**

Push hecho.
Deploy hecho.


[telegram] copia el formato de home a toda la pagina (menos el color)


**Modifying styles for templates**

I need to adjust the templates' style to align with the home cards or layout. It seems I should inspect the home design first. After that, I'll apply the appropriate style family to our vendor, machine, and documentation. This will ensure consistency across the board. It's a straightforward task, but I want to make sure I get it right, so I'll tackle it directly!

Apply home page visual format across site except color

Restyle OurVend, Machine, and docs pages to use the same spacing, card shape, typography rhythm, and general layout language as home, while keeping their light color scheme. Validate locally, then push and deploy.


Created #17: Apply home page visual format across site except color (pending)

Resume Ballbox FTP investigation

Check prior findings, search for known/default credentials, and test 888888 if target/login details are available.

Deep local search for the original machine export/config artifact that contains the actual OurVend FTP password, not just docs that mention it.

Create a short operator-facing document for someone physically at the machine to export the right files and send back evidence needed to recover the OurVend FTP password/config.

Verify current publish/setup, convert TCN DOCX docs to static HTML under the site, and update index with entries for machine docs/research plus existing OurVend cloud map content.

Copy the new coordination/index/machine-docs content into the GitHub Pages-backed vending-status-pages site/analysis directory and verify the published-style paths locally.

Synthesize all TCN/OurVend machine parts into a new document that keeps only confirmed/comprobada truth, excluding hypotheses and open questions, then add it to published analysis machine-docs index.

Create a separate machine-docs page that captures only the signal obtained from the official manual photos, distinct from verified-truth and part docs, and link it from the machine-docs index.

Refactor the analysis/coordination/machine-docs static pages to reduce confusion: add breadcrumbs, clearer hierarchy, consistent nav labels, and section-level entry points.

Implement the correct route hierarchy from / to /ballbox/... in the published static site, keep legacy analysis aliases during transition, verify locally, then push and deploy.

Remove empty Ballbox hub and redundant internal-link wording, increase mobile font sizing, remove legacy/new wording, and republish.

Remove visible /ballbox hub concept from breadcrumbs/nav, stop linking to separate machine > docs in global nav, and make Machine page contain a docs section with direct links.

Reduce the oversized home font and align base typography across root and Ballbox pages to a slightly smaller shared scale, then push and deploy.

Move semantic Ballbox pages from /ballbox/* to root-level /ourvend, /machine, /machine/docs..., increase font sizing on those pages, keep compatibility aliases if useful, then push and deploy.

Increase base typography on /machine and /ourvend pages so body text matches the perceived size of the main links on /. Push and deploy after local check.

Remove site routes that are no longer reachable from the home page, especially legacy /analysis and compatibility /ballbox paths if not linked from root, and improve mobile layout/spacing for the public pages. Validate locally, then push and deploy.

Do a fine pass across published OurVend/Machine pages to remove links pointing to deleted routes and remove redundant text under breadcrumbs like DOCS / CONSOLIDADO or MACHINE / CONSOLIDADO. Validate locally, then push and deploy.

Restyle OurVend, Machine, and docs pages to use the same spacing, card shape, typography rhythm, and general layout language as home, while keeping their light color scheme. Validate locally, then push and deploy.