Skip to content

Repo audit: XLSX MIME fix, CI parity and cleanup#8

Merged
oblomov-dev merged 16 commits into
mainfrom
claude/repo-audit-review-fr5qem
Jul 13, 2026
Merged

Repo audit: XLSX MIME fix, CI parity and cleanup#8
oblomov-dev merged 16 commits into
mainfrom
claude/repo-audit-review-fr5qem

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

A small, low-risk audit pass over the table-content-loader addon, bringing it in line with the sibling addons.

Changes

  • Fix – serve XLSX downloads with the correct spreadsheetml MIME type instead of text/csv (app_05, app_06).
  • Fix – correct the row-limiting logic in the table preview.
  • Cleanup – remove unused ms_app fields (max_rows, file_size, file_entries); convert event char literals to string literals.
  • Refactor – vendor a tcl context class instead of calling z2ui5_cl_util directly (abapGit has no dependency management).
  • CI parity – add the missing CI setup and build_rename workflow; bump actions to v5; uniform CI badge block; rename the rename check to renaming; quote node-version.
  • Docs / hygiene – add AGENTS.md; correct compatibility wording and unify the Contribution section; note that authorization checks are the operator's responsibility; add .gitattributes / CoC; drop unused devDependencies; remove Dependabot config; add prefix_is_current_class to abaplint.jsonc; extend .gitignore; add engines.

Testing

npx abaplint passes (0 issues, 22 files).

🤖 Generated with Claude Code


Generated by Claude Code

claude added 16 commits July 13, 2026 10:00
The repo had an abaplint.jsonc but no way to run it automatically: no
workflows, no package.json, no .github/abaplint configs. Adds the same
baseline the other addons have (ABAP_STANDARD, ABAP_CLOUD, rename_test
workflows, cloud and rename abaplint configs, package.json with pinned
@abaplint toolchain, .gitignore). All three checks verified locally
with 0 issues on 20 files. Also points the README demo image at the
abap2UI5-addons org the repo lives in today.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
The preview kept the first five rows by deleting inside LOOP AT <tab2>,
but DELETE of the current row makes the loop skip the next one, so rows
7, 9, 11 ... survived alongside 1-5. Replaced with a single
DELETE <tab2> FROM 6, which keeps exactly the first five rows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
The three workflows only triggered on push to main, so a PR with
broken ABAP passed with no checks and the failure only surfaced after
merge on a then-red main. Added pull_request as an additional trigger
and a Dependabot config matching the other repos (weekly npm +
github-actions, @abaplint grouped).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
This addon accesses data by table/SQL the user names and has no
authorization check of its own by design (it is a developer tool).
Document that explicitly and point operators at adding their own checks
before using it beyond a development system.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Dependency updates will be handled manually.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Adds the same rename-branch feature abap2UI5 and frontend have: a
workflow_dispatch that renames all artifacts to a chosen namespace and
pushes the result to rename_<name> (e.g. rename_zmyui5), ready to pull
with abapGit for a parallel installation in the same system. Reuses the
existing .github/abaplint/rename.json (placeholder zabap2ui5) with the
chosen name substituted; main is carried as second parent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Only @abaplint/cli is actually used (abaplint checks + rename). The
transpiler/runtime/sqlite stack, @types/node and npm-check-updates had
zero references - carried over from a template. abaplint still reports
0 issues after removal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Adopts the popups/samples pattern: table-content-loader now carries its
own z2ui5_cl_tcl_context with the utility methods it uses (conv/itab/
json/xml/rtti helpers plus their private dependencies and the char
constants), copied from the abap2UI5 utility class, instead of calling
z2ui5_cl_util directly. The rtti attribute cache was dropped from the
copy. abaplint: 0 issues, standard and cloud.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
The round-1 action-version pass skipped these four addons; they still
ran @v4 while layout-management already uses @v5. Unify on @v5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
…lish, lint rules

- .gitattributes (LF), CODE_OF_CONDUCT.md, LICENSE holder -> abap2UI5
- workflows: concurrency groups + npm cache
- README: add CI status badge block
- abaplint: enable exporting + omit_parameter_name (auto-fixed findings)
- UI text: && -> string templates, 'filepath here...' -> backticks,
  lowercase 'cancel' toast -> 'Cancelled'
abaplint: 0 issues, standard and cloud.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Give the README the same six-badge block as the other addons
(ABAP_STANDARD, ABAP_CLOUD, ABAP_702, auto_cloud, auto_downport,
renaming) so badges stay grey where a workflow is not part of this repo
and go green/red where it runs. The rename_test workflow is renamed to
'renaming' so its badge reads that.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Single agent-instruction file documenting the current state: structure,
the vendored utility-copy model, dependencies, security notes, coding
style and how to validate (abaplint + CI workflows).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
- Serve XLSX downloads with the correct spreadsheetml MIME type instead
  of text/csv in app_05 and app_06
- Remove unused ms_app fields (max_rows, file_size, file_entries) and
  convert event char literals to string literals in app_01/app_03
- Add prefix_is_current_class to abaplint.jsonc (0 findings)
- README: correct compatibility wording and unify Contribution section
- Quote node-version in workflows, extend .gitignore, add engines to
  package.json

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
Align with the version now used in the abap2UI5 core repo. abaplint
passes with 0 issues.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
The Contributor Covenant [INSERT CONTACT METHOD] placeholder had been
deleted, leaving a dangling "...responsible for enforcement at ."
sentence. Point reporters at the repository's private Security Advisory
report form.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
The import view built the format segmented button with extra ->get( )
hops (which navigate to mo_root->mo_previous), unlike the working export
view. Attach items/items directly so both views build the control the
same way.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
@oblomov-dev
oblomov-dev merged commit 5a24462 into main Jul 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants