Skip to content

Make Assembly files track as Assembly#1474

Open
SeradedStripes wants to merge 6 commits into
hackclub:mainfrom
SeradedStripes:main
Open

Make Assembly files track as Assembly#1474
SeradedStripes wants to merge 6 commits into
hackclub:mainfrom
SeradedStripes:main

Conversation

@SeradedStripes

Copy link
Copy Markdown

Summary of the problem

Assembly file types were being tracked as a range of assembly derivatives.

Describe your changes

Fixes it by making Assembly file extensions be logged as Assembly

Screenshots / Media

None

@greptile-apps

greptile-apps Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR makes Assembly extensions resolve to the canonical Assembly language. The main changes are:

  • Custom language extension arrays now merge with base language data instead of replacing it.
  • Extensions owned by a custom language are removed from other language entries before lookup maps are built.
  • Assembly custom metadata now claims ambiguous .asm, .s, and .S extensions.
  • Tests cover Assembly extension precedence and existing custom language entries.

Confidence Score: 5/5

Safe to merge with minimal risk.

The change is small, localized to language metadata loading, and includes tests for the updated Assembly extension behavior.

No files require special attention.

T-Rex T-Rex Logs

What T-Rex did

  • Observed the Rails test blocker log showing Bundler 2.3.15 cannot parse platforms: %i[ windows jruby ].
  • Compared Language assembly: baseline before override log to Language assembly: post-change assertions log to review baseline behavior and post-change results.
  • Validated the change using the Runtime validator harness (language_assembly_validation_harness.rb) as the generated narrow-proof validator.
  • Confirmed that the after-change run produced exit code 0 and all assertions passed according to the post-change log evidence.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
app/lib/language_utils.rb Merges custom language arrays with base data and removes custom-owned extensions from other languages so extension lookup prioritizes canonical overrides.
config/languages_custom.yml Adds Assembly extension overrides for ambiguous assembly suffixes so they are treated as canonical Assembly.
test/lib/language_utils_test.rb Adds tests for Assembly extension precedence and existing custom language behavior.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant Caller
participant LanguageUtils
participant Base as config/languages.yml
participant Custom as config/languages_custom.yml

Caller->>LanguageUtils: detect_from_extension(entity)
LanguageUtils->>LanguageUtils: extension_map
LanguageUtils->>Base: load base language data
LanguageUtils->>Custom: load custom language data
LanguageUtils->>LanguageUtils: deep_merge with array union
LanguageUtils->>LanguageUtils: remove custom-owned extensions from other languages
LanguageUtils->>LanguageUtils: build extension lookup
LanguageUtils-->>Caller: canonical language name
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant Caller
participant LanguageUtils
participant Base as config/languages.yml
participant Custom as config/languages_custom.yml

Caller->>LanguageUtils: detect_from_extension(entity)
LanguageUtils->>LanguageUtils: extension_map
LanguageUtils->>Base: load base language data
LanguageUtils->>Custom: load custom language data
LanguageUtils->>LanguageUtils: deep_merge with array union
LanguageUtils->>LanguageUtils: remove custom-owned extensions from other languages
LanguageUtils->>LanguageUtils: build extension lookup
LanguageUtils-->>Caller: canonical language name
Loading

Reviews (6): Last reviewed commit: "Merge branch 'main' into main" | Re-trigger Greptile

Comment thread config/languages_custom.yml
Comment thread config/languages_custom.yml
Comment thread app/lib/language_utils.rb Outdated
Comment thread app/lib/language_utils.rb Outdated
@greptile-apps

greptile-apps Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Want your agent to iterate on Greptile's feedback? Try greploops.

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