diff --git a/scripts/patches/bazel_intellij_aspect_filter.patch b/scripts/patches/bazel_intellij_aspect_filter.patch
index 940c383..c37f18e 100644
--- a/scripts/patches/bazel_intellij_aspect_filter.patch
+++ b/scripts/patches/bazel_intellij_aspect_filter.patch
@@ -14,56 +14,17 @@
 
 
 # We need to patch the IntelliJ Bazel aspect that is injected via the @intellij_bazel repository
-# to support our custom Go code generators.
-#
-# The plugin maintains a whitelist of rules it deems worthy of syncing.
-#
-# Since we really, *really* do not want to touch the Java code and fork the plugin, we instead monkey-patch
-# the intellij_aspect macro to pretend that our custom generators are, in fact, go_proto_library rules
-# (which behave exactly the same - they output Go sources).
-#
+# to properly resolve go_library rules that have both source files and embeds.
 --- a/intellij_info_impl.bzl.o
 +++ b/intellij_info_impl.bzl
-@@ -312,7 +312,7 @@ def _collect_generated_proto_go_sources(target):
-         files = target[OutputGroupInfo].go_generated_srcs.to_list()
-     else:
-         return None
--    return [f for f in files if f.basename.endswith(".pb.go")]
-+    return [f for f in files if f.basename.endswith(".go")]
-
  def collect_go_info(target, ctx, semantics, ide_info, ide_info_file, output_groups):
      """Updates Go-specific output groups, returns false if not a recognized Go target."""
-@@ -329,6 +329,8 @@ def collect_go_info(target, ctx, semantics, ide_info, ide_info_file, output_grou
+@@ -349,6 +349,8 @@ def collect_go_info(target, ctx, semantics, ide_info, ide_info_file, output_grou
          "go_appengine_test",
      ]:
          sources = [f for src in getattr(ctx.rule.attr, "srcs", []) for f in src.files.to_list()]
-+        sources += [f for embed in getattr(ctx.rule.attr, "embed", []) for f in _collect_generated_proto_go_sources(embed) or []]
++        sources += [f for embed in getattr(ctx.rule.attr, "embed", []) for f in _collect_generated_go_sources(embed) or []]
 +
          generated = [f for f in sources if not f.is_source]
      elif ctx.rule.kind == "go_wrap_cc":
          genfiles = target.files.to_list()
-@@ -897,10 +899,14 @@ def intellij_info_aspect_impl(target, ctx, semantics):
-     file_name = file_name + ".intellij-info.txt"
-     ide_info_file = ctx.actions.declare_file(file_name)
-
-+    kind = ctx.rule.kind
-+    if kind in ["go_sqlboiler_library", "bindata"]:
-+        kind = "go_proto_library"
-+
-     target_key = make_target_key(target.label, aspect_ids)
-     ide_info = dict(
-         key = target_key,
--        kind_string = ctx.rule.kind,
-+        kind_string = kind,
-         deps = list(all_deps),
-         build_file_artifact_location = build_file_artifact_location(ctx),
-         tags = tags,
-@@ -937,7 +943,7 @@ def intellij_info_aspect_impl(target, ctx, semantics):
-         output_groups = output_groups,
-         intellij_info = struct(
-             target_key = target_key,
--            kind = ctx.rule.kind,
-+            kind = kind,
-             output_groups = output_groups,
-             export_deps = export_deps,
-         ),
