Generated __pycache__ files were already ignored in some paths but remained tracked in the repository, which caused merge noise and binary conflicts. This removes the tracked bytecode from the index and adds an explicit recursive ignore rule so future Python runs do not reintroduce them.
Constraint: Existing repository history already tracked pycache files across app, backend, and source_code
Rejected: Delete local pycache directories from disk | only repository tracking needed to be removed
Confidence: high
Scope-risk: narrow
Directive: Do not force-add __pycache__ or *.pyc files unless there is a documented runtime packaging reason
Tested: git ls-files shows no remaining paths containing __pycache__/
Not-tested: Application runtime; change only affects tracked generated artifacts and ignore rules
new file: assets/_plugin-vue_export-helper-xvHHTGU_.css
new file: assets/convert-1dkFPbKa.css
new file: assets/convert-6b0yq-M0.css
new file: assets/convert-BxkpMHO9.css
new file: assets/convert-D4Yv2oRy.css
new file: assets/convert-DwbQug2y.css
modified: assets/convert.js
new file: assets/dedupe-B0eqpVpj.css
new file: assets/dedupe-BHE_BCAJ.css
new file: assets/dedupe-Day_nGxq.css
new file: assets/dedupe-DzFvTfoj.css
new file: assets/dedupe-rhGu1E8E.css
modified: assets/dedupe.js
new file: assets/el-alert-Ct0RpqUD.css
new file: assets/pywebview-B6ZNXusn.css
new file: assets/pywebview-BRrok0pS.js
new file: assets/pywebview-BnpJyyGZ.js
new file: assets/pywebview-CGwF8TuM.js
new file: assets/pywebview-Chz98E9c.css
new file: assets/pywebview-D-PKWjUg.js
new file: assets/pywebview-DVgP2-kW.js
new file: assets/pywebview-IqgMfeBe.css
new file: assets/pywebview-Rm5Hhqpf.js
new file: assets/pywebview-leZCedEt.js
new file: assets/split-BsJfbBqn.css
new file: assets/split-DAa_Usoh.css
new file: assets/split-DidKJ84l.css
new file: assets/split-R_8V5xgh.css
new file: assets/split-_O6NHqDj.css
modified: assets/split.js
modified: blueprints/__pycache__/brand.cpython-311.pyc
modified: blueprints/__pycache__/brand.cpython-39.pyc
modified: blueprints/brand.py
modified: config.py
modified: main.py
modified: new_web_source/convert.html
modified: new_web_source/dedupe.html
modified: new_web_source/split.html
new file: app/blueprints/__pycache__/__init__.cpython-311.pyc
new file: app/blueprints/__pycache__/__init__.cpython-39.pyc
new file: app/blueprints/__pycache__/admin.cpython-311.pyc
new file: app/blueprints/__pycache__/admin.cpython-39.pyc
new file: app/blueprints/__pycache__/auth.cpython-311.pyc
new file: app/blueprints/__pycache__/auth.cpython-39.pyc
new file: app/blueprints/__pycache__/brand.cpython-311.pyc
new file: app/blueprints/__pycache__/brand.cpython-39.pyc
new file: app/blueprints/__pycache__/image.cpython-311.pyc
new file: app/blueprints/__pycache__/image.cpython-39.pyc
new file: app/blueprints/__pycache__/main.cpython-311.pyc
new file: app/blueprints/__pycache__/main.cpython-39.pyc
new file: app/blueprints/admin.py
new file: app/blueprints/auth.py
new file: app/blueprints/brand.py
new file: app/blueprints/image.py
new file: app/blueprints/main.py
new file: app/brand_spider/__pycache__/main.cpython-39.pyc
new file: app/brand_spider/__pycache__/web_dec.cpython-39.pyc
new file: app/brand_spider/main.py
new file: app/brand_spider/web_dec.py
new file: app/static/bg.jpg
new file: "app/static/\345\223\201\347\211\214\346\226\207\346\241\243\346\240\274\345\274\217_\346\250\241\346\235\277.xlsx"
new file: "app/static/\346\250\241\346\235\2772-\344\273\245\346\226\207\344\273\266\345\244\271\346\226\271\345\274\217\344\270\212\344\274\240.zip"
new file: app/tool/.device_id
new file: app/tool/__pycache__/devices.cpython-311.pyc
new file: app/tool/__pycache__/devices.cpython-39.pyc
new file: app/tool/devices.py