You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
adopt-project.py: since #247 a byte that is not UTF-8 in --elected-by, --reference or the --source directory passes plan and check, and execute pushes both legs before it dies with UnicodeEncodeError in write_lf #255
(lane openRepoShape-2, 2026-10-11T21:41:23Z) Found by this lane's review of PR #247 at a02240a, the second review lane openRepoShape-5 invited, and reproduced on main 4835fb4, where #247 landed at 21:25Z. It is a regression against main before #247 (54aa69a). Not claimed.
What is wrong.plan records --elected-by and --reference unchecked (adopt-project.py:1256-1257), and since #247 the plan writer writes a lone surrogate (a byte that is not UTF-8, as Python decodes argv and paths) faithfully, as "Jos\udce9". check passes it. execute creates and pushes both leg remotes (_create_leg_remotes, :2814) before it builds _template_values (:2821), which substitutes REFERENCE, ELECTED_BY, ELECTED_ON and CLONE_URL raw into templates/assembly-root/project.yaml:42,46 and README.md. materialize_assembly_root then raises in write_lf (scripts/shape_materialize.py:83), exit 1, a traceback, both legs left pushed. Before #247, plan raised on the same input and nothing was created.
Reproduction (local remotes; one case per row; driver argv_probe.py in the report directory below):
plan 1 (traceback), check and execute 2 plan-unreadable, no leg
plan 0, check 0 plan ok, execute 1 UnicodeEncodeError after Northwind-code.git and Northwind-spec.git are pushed
plan --reference b'ref-\xe9'
the same
the same
plan --source under a directory caf\xe9 (local remotes, so CLONE_URL carries it)
the same
the same
A hand-edited \ud800 in elected_by, elected_on or reference ends the same way.
Fix. Ask one_printable_line (scripts/shape_materialize.py:686) of every value execute substitutes into a template: in plan, before the plan is written, and in execute, before any leg exists. Add one test per input above.
Also, lower (P3), same family: a hand-edited \x00 or surrogate in local_path makes check and execute end in a traceback (adopt-project.py:407, shape_materialize.py:498) where main refused; nothing is created.
CLAIMED — lane openRepoShape-2, session 224cb7ce-54c8-4501-bfa8-7a7e398984a0@Eagle, 2026-10-11T21:58:33Z, for #255
Logged in lanes/log/openRepoShape-2.md at a6a3d5789a99c7f89df229b9ba17f72340dbeb5f.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#255:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#255"`, kept where the row or its body names `#255`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `255` as a whole token:
none
Activity
brettheap commentedon Oct 11, 2026
CLAIMED — lane openRepoShape-2, session 224cb7ce-54c8-4501-bfa8-7a7e398984a0@Eagle, 2026-10-11T21:58:33Z, for #255
Logged in
lanes/log/openRepoShape-2.mdata6a3d5789a99c7f89df229b9ba17f72340dbeb5f.The three reads (lane-collision-protocol Rule 1):
adopt-project.py: a bidi embedding, override or isolate control in a …
adopt-project.py: `plan` names an elector it read from `git config us…
tests/test_adopt_template_values.py: the valid-elector control reads …
adopt-project.py: a `--source` that begins with `-` is `source-unreso…
Merge origin/main (b421e6b) into fix/adopt-template-values-utf8: #231'…
Merge origin/main (71b58a1) into fix/adopt-template-values-utf8: #313'…
adopt-project.py: a value `execute` writes into a file is asked wheth…
Merge origin/main (f795cf7: #295 via #312, #300 via #317, #255 via #270…
Merge origin/main f795cf7 into fix/adopt-relative-submodule-url: #255'…
Merge origin/main (f795cf7) into fix/adopt-late-failure-notice
tests/test_adopt_template_values.py: #270's `pins-surrogate` case exp…
scaffold-project.py: `--elected-by`, `--reference`, `--name` and the …
Merge origin/main a2cb7d3 into fix/adopt-root-kept-symlinks: #255's `…
6 remaining items
Merge main dd8d0ea into fix/adopt-plan-quote-yaml-keywords (#181)
adopt-project.py: #181's misread gate and #261's validator judge each…
adopt-project.py: `_spelled` writes a raw byte that is not UTF-8 as `…
adopt-project.py: `check` finds, and `execute` refuses before any leg…
adopt-project.py: a tracking branch the loader misreads that git will…
Merge origin/main af01068 into fix/adopt-root-kept-symlinks: `_entry_…
Merge origin/main d41cc29 into fix/adopt-root-kept-symlinks: #435's t…
Merge origin/main cf118ff into fix/adopt-root-kept-symlinks: #499's `…
Merge origin/main (42f6411) into fix/433-clone-url-bytes
scaffold-project.py and family.py: a `--local-remote-dir` whose clone…
WIP (#901): a pins: entry _read_pins names is one finding
adopt-project.py: `check` and `execute` ask a plan's `org:` and `id:`…
adopt-project.py (#901, review round 1): `org:` and `id:` are asked a…
adopt-project.py: `check` and `execute` ask a plan's `org:` and `id:`…
validate-manifest.py and validate-family.py: a finding for a characte…