Epic: restructure repo — flatten web/ to root, drop decompiled/ from git #26
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
EduarD3V/AutoFirme#26
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Repo UX pass before feature work:
web/content moves to repo root;decompiled/+decompiled-configurador/(~180MB text) leave git history HEAD (keep accessible: git tagreference/decompile-1.9or LFS). Update AGENTS.md, Containerfile, .dockerignore, CI paths, docs.A draft branch
chore/restructure-flat-repoexists locally (operator checkout) as starting point — do not blindly merge; review, rebase on main, run gates (pnpm test, build, Container build).Also removes bullet.yaml gates referencing decompiled/ (stale once trees drop).
Acceptance:
bun install && bun run test && bun run buildfrom rootEpic: holds sub-PRs; split if >2 files conflict with feature work below.
bullet: coder launched on branch
issue/26-epic-restructure-repo-flatten-(modelnan/deepseek-v4-flash).Claimed — branch
issue/26-epic-restructure-repo-flatten-. Doing: flattenweb/to the repo root, untrack thedecompiled*trees (tagreference/decompile-1.9), update AGENTS.md/README/Containerfile/CI paths + bullet.yaml gates.Issue #26 — restructure repo: flatten
web/to root, dropdecompiled/from gitRestated goal
Repo-UX pass before feature work.
web/(the SvelteKit app, 97 tracked files) moves to the reporoot, so
bun install && bun run test && bun run buildrun from the root and the Containerfilebuilds with the root as context. The ~180 MB jadx reference trees
decompiled/(11,487 files) anddecompiled-configurador/(4,811 files) leave the tracked tree; they stay reachable through thelocal tag
reference/decompile-1.9and are kept on disk as untracked, gitignored reference.AGENTS.md,README.md,docs/,Containerfile,.dockerignore,.gitignoreand thebullet.yamlgates stop referring toweb/and to the now-untracked trees.Done means: on this branch, from the repo root: install +
test+buildpass, the containerimage builds from the root context,
git ls-files decompiled decompiled-configuradoris emptywhile
git rev-parse reference/decompile-1.9resolves to the pre-removal commit, and no trackedfile still describes the old layout.
Scope
Starting point: operator's draft branch
chore/restructure-flat-repo(2 commits on top off7dbab8, which is also this branch's base — so no rebase is needed, a cherry-pick appliescleanly). Reviewed, not merged blindly: the draft's
AGENTS.mdedit drops theoriginal/linefrom the Layout block, which contradicts hard rule 1; that is fixed here.
Touched
web/*→*(97 files)git mvsemantics)decompiled/,decompiled-configurador/git rm -r --cached; files kept on disk, gitignored.gitignore.svelte-kit/,build/(noweb/prefix).dockerignore.svelte-kit,buildat rootContainerfileCOPY package.json pnpm-lock.yaml,COPY . /,COPY CaddyfileREADME.mdweb/README.md: retitle, fix commands/paths for the root layoutAGENTS.mddocs/architecture.mddecompiled/docs/REVERSING-NOTES.mddocs/check-architecture-doc.pytest/fixtures/{README.md,generate.sh,verify-fixtures.sh}web/test/...→test/...src/lib/pades.test.ts,src/lib/{batch,ooxml}.ts.bullet/bullet.yamldecompiled/gates (issue asks for this)Not touched
decompiled/,decompiled-configurador/(read-only reference; untracked only).src/lib/*.tslogic — the two edits there are comments.original/,extracted/,work/(gitignored inputs/scratch).main,bullet-develop.Ordered tasks
Each task ends in a commit; the command is its verification.
38d708b(-n) as one commit "flatten repo"; restore the two trees tothe working tree from the pre-removal commit (untracked), create tag
reference/decompile-1.9on
f7dbab8.git ls-files decompiled decompiled-configurador | wc -l→ 0 andls decompiled/sources | headnon-empty andgit rev-parse reference/decompile-1.9resolves.8764507(
.gitignore,.dockerignore,Containerfile) plus the.bullet/bullet.yamlgate removal.pnpm install --frozen-lockfile && pnpm test && pnpm buildfrom the root; then theliteral acceptance command
bun install && bun run test && bun run build.README.md,AGENTS.md,docs/architecture.md,docs/REVERSING-NOTES.md,docs/check-architecture-doc.py,src/lib/*comment paths,test/fixtures/*path text.python3 docs/check-architecture-doc.py(rule C always; A/B when tree present) andgrep -rn 'web/' --exclude-dir=.git --exclude-dir=decompiled* .returns only intended hits.podman build -f Containerfile -t autofirme-web:issue26 .from the root.podman run --rm autofirme-web:issue26 sh -c 'ls /srv | head'shows thestatic build.
bullet.yamlafter the edit (empty list →git diff --checkplus the historical pair kept honest in the report), write
issue-26.report.md, post comments.Open questions (assumed, not asked)
bunvspnpm. Acceptance saysbun install && bun run test && bun run build; the repo,lockfile and Containerfile use pnpm. Assumption: the acceptance line means "install/test/build
from the root with the declared manager"; pnpm stays canonical (Containerfile + lockfile), and
the literal bun command is run as a check and reported, without switching lockfiles (a second
lockfile would be a second source of truth).
reference/decompile-1.9pointed at the pre-removal commit, created locally; the trees stay ondisk untracked so the existing gate text and the doc checker still work in this worktree. Push of
the tag is the orchestrator's call (this agent must not push).
docs/check-architecture-doc.py. It resolvesFoo.java:Ncitations againstdecompiled/.Assumption: keep the checker, and when the tree is absent print an explicit SKIP for rules A/B
(still exit 0 for rule C) instead of failing on a fresh clone. Deleting it would drop a real
invariant.
says "untracked", and dropping 115 MB of reference from every worktree is not required.
Risk
and unavoidable for this issue.
pnpm testshells out toopenssl/xmlsec1/unzip(all present here); on a machinewithout them the suite fails for environment reasons, not for this change — reported, not patched.
python3 docs/check-architecture-doc.pyis red →boring fallback: leave the checker byte-identical and note that it needs the tag checked out.
as PARTIAL with the local gates green and the exact failing command.
DONE — branch
issue/26-epic-restructure-repo-flatten-(basemain@f7dbab8), worktree clean, nothing pushed.Commits:
c2a981achore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26)68b3922chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26)1f4d007docs: retarget paths to the flat layout and the reference tag (Refs #26)Tag
reference/decompile-1.9->f7dbab8(annotated, local: must be pushed by the orchestrator).Gates:
test -d decompiled→ exit 0 (trees restored on disk untracked);find decompiled -name '*.java' | grep -q .→ exit 0git diff --check main...HEAD→ exit 0 (new gate list is empty, per this issue)pnpm test(root) → 10 files / 96 tests passed;pnpm build→Wrote site to "build"bun install && bun run test && bun run build(root, temp copy) → passed (10 files / 96 tests, build written)python3 docs/check-architecture-doc.py→ PASS 38 citations; with the tree moved away →SKIP rules A/B+ PASS (rule C)podman build -f Containerfile -t autofirme-web:issue26 .→ exit 0; container smoke:/200 +<title>AutoFirma Web</title>,/some/route200 (SPA fallback),/favicon.svg200Diff: 16,403 files changed, 90+7 renames, 16,298 deletions (jadx trees), 8 modified files.
Review notes: the draft's
Containerfile(COPY . /+/build) would not have built — fixed and verified; draft dropped thedecompiledlines from.dockerignore(115 MB build context) — kept ignored; draft droppedoriginal/from AGENTS.md Layout — kept;docs/check-architecture-doc.pynow degrades loudly instead of failing on a fresh clone. Full report inbullet meta/issue-26.report.md.bullet: coder launched on branch
issue/26-epic-restructure-repo-flatten-(modelnan/deepseek-v4-flash).bullet: implementation finished (DONE — branch
issue/26-epic-restructure-repo-flatten-(basemain@f7dbab8), worktree clean, nothing pushed.) — moving to review.bullet: reviewer launched (model
9router/reviewer, independent of coder).DONE — branch
issue/26-epic-restructure-repo-flatten-(basemain@f7dbab8), worktree clean, nothing pushed. Round 2: re-verification only, no new commits.Commits:
c2a981achore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26)68b3922chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26)1f4d007docs: retarget paths to the flat layout and the reference tag (Refs #26)Gates (all re-run this session):
git diff --check main...HEAD— exit 0 (effective gate;bullet.yamlgates are[])test -d decompiled find decompiled -name '*.java' | grep -q .— exit 2,error: test: invalid test command(malformed since forever; its two real intents, run separately, are green:test -d decompiled0,find decompiled -name '*.java' | grep -q .0 → 16,298 files)bun install && bun run test && bun run build(root) — exit 0, 96/96 tests,Wrote site to "build"pnpm install --frozen-lockfile && pnpm test && pnpm build(root) — exit 0, 96/96podman build --no-cache -f Containerfile— exit 0 in 42 s; smoke:/200 html<title>AutoFirma Web</title>,/some/deep/route200 SPA fallbackpython3 docs/check-architecture-doc.py— exit 0 with tree present (38 citations) and with it absent (SKIP rules A/B, rule C still enforced)Acceptance:
git ls-files decompiled decompiled-configurador→ 0; tagreference/decompile-1.9→f7dbab8, already on origin (d2cdd2e),git ls-tree -rover it lists 11,487 + 4,811.java; AGENTS.md + bullet.yaml updated; README rewritten for the root layout; no CI config exists in-tree. Details in/home/eduardez/workspace/AutoFirme/.bullet/meta/issue-26.report.md.REVIEW: CLEAN — commit
1f4d007: findings none — 97 renames web/*→root, trees untracked + tag reference/decompile-1.9 peels tof7dbab8, pnpm+bun test/build 96/96, container builds from root, docs/AGENTS/bullet.yaml retargeted; no fix commits neededbullet: review CLEAN — ready to publish.
bullet: gates red on integration (
test -d decompiled) — conflict-solver agent reconciles.bullet: merge conflicts with
bullet-develop— conflict-solver agent owns the worktree until it pushes.bullet: PR #31 open →
bullet-develop(auto-merge follows).bullet: PR #31 auto-merged into
bullet-develop.Claimed — branch
issue/26-epic-restructure-repo-flatten-. Doing: merge into bullet-develop (recorded basec9257b7is already an ancestor of the issue branch, so the merge is clean), then run gates + pnpm test/build from the new root.bullet: merged into
bullet-develop— integration gates green.