Skip to content

Indexing gap: inovoysWeb #1735

Description

@moradchalaby

Summary

index_repository / index_status on a Laravel 11 project (inovoysWeb, macOS arm64, codebase-memory-mcp 0.10.8) reports a best-effort indexing gap.

Signal Value
nodes / edges 17010 / 65142
status ready
parse_partial 294 files (truncated: false)
skipped 1 (database/sql/world.sql, parse timeout at extract)
not_indexed 1422 files / 25 dirs (by design: gitignore / skip-lists)

The Cursor MCP server in this session does not expose index_status (available tools: index_repository, search_graph, search_code, trace_path, query_graph, get_graph_schema, get_code_snippet, get_architecture). Status was read via codebase-memory-mcp cli --json index_status '{"project":"inovoysWeb"}'.

Checkout is private. Ranges below are 1-based. Snippets are sanitized / generic equivalents of the same constructs — original app code is not pasted.

parse_partial by class (294)

Count Class Typical flagged construct
161 storage/framework/views/*.php Laravel compiled Blade: <?php echo e(...) ?> wrapping HTML that still contains @container / Blade-like tokens. Whole-file ranges (1-N) are common. These compiled views should usually be ignored.
59 resources/assets/vendor copy/**/*.scss Nested Sass interpolation inside calc(), logical properties (inset-inline), Bootstrap-extended mixins.
67 *.blade.php (Modules + resources/ + Jetstream) Blade directives mixed with HTML/Alpine/Livewire (@error in class, @if in attributes, @pushonce, @vite, @entangle, @extends/@section, <livewire:…/>, {!! !!}, dotted <x-…> components).
1 *.blad.php (typo, missing e) Entire Blade file parsed as PHP.
1 .env.example dotenv ${VAR} concatenation (33${APP_PORT}).
1 php.ini File is actually a bash heredoc that writes a php.ini (cat > php.ini << 'EOF').
1 install.ps1 File is bash (Laravel Sail installer), not PowerShell. Whole file 1-53.
2 public/**/ajax.php File is JSON (DataTables fixture), not PHP. Ranges 2-4,5-5,6-453,462-462.
1 resources/css/app.css Escaped colon in attribute selector: [wire\:id].

Constructs (sampled from flagged ranges)

1. Compiled Blade PHP (majority)

Compiled views mix PHP echo with leftover CSS-framework tokens:

<section
    <?php echo e($attributes->merge(['class' => "@container flex flex-col p-6"])); ?>
>
    <?php echo e($slot); ?>
</section>

Expected: skip storage/framework/views by default, or treat compiled Blade as opaque PHP without per-line parse_partial spray.

2. Nested Sass interpolation in calc()

Vendor SCSS (Vuexy/Bootstrap-extended) flags lines like:

min-block-size:
  calc(
    #{"#{($font-size-base * $pagination-line-height) + ($pagination-padding-y * 2)} + calc(#{$pagination-border-width} * 2)"}
  );

Also: inset-inline: 10px auto; inside nested selectors.

3. Blade + HTML / Livewire / Alpine

Representative patterns on flagged lines:

{{-- @error inside class + @if inside an HTML attribute --}}
<select class="form-control @error('field') is-invalid @enderror"
    wire:model.live="field" @if (empty($parent)) disabled @endif>

{{-- @pushonce --}}
@pushonce('styles')
    <link rel="stylesheet" href="https://cdn.example.com/lib.css">
@endpushonce

{{-- Alpine + Livewire --}}
<div x-data="{ open: @entangle('showDropdown') }" @click.away="$wire.close()">
<livewire:module.component-name/>

{{-- @vite with PHP concat --}}
@vite(['resources/scss'.$config['rtl'].'/core.scss'])

{{-- Jetstream --}}
@extends('errors::minimal')
@section('title', __('Unauthorized'))
@props(['on'])
<div x-init="@this.on('{{ $on }}', () => { shown = true })">

{{-- dotted Blade component close + duplicate HTML attrs --}}
<a class="hover-underline" class="hover-underline" href="{!! route('login') !!}">x</a>
</x-layouts.mail.mail-layout>

HTML comments immediately before <link href="https://cdn…"> also sit on several flagged Blade lines.

4. Wrong language by extension

# saved as php.ini
cat > php.ini << 'EOF'
[PHP]
memory_limit = 512M
EOF
# saved as install.ps1 (Laravel Sail installer shape)
docker info > /dev/null 2>&1
if [ $? -ne 0 ]; then
    echo "Docker is not running."
    exit 1
fi
{ "draw": 1, "data": [] }

(the last saved as ajax.php)

{{-- saved as school-register.blad.php --}}
<x-layouts.commonMaster :title="env('APP_NAME')" :layout="'blank'">
    <x-slot name="slot">
        @vite(['resources/js/pages-auth.js'])
    </x-slot>
</x-layouts.commonMaster>

5. dotenv interpolation + escaped CSS colon

FORWARD_DB_PORT=33${APP_PORT}
MEILISEARCH_HOST=http://meilisearch:77${APP_PORT}
[wire\:id],
*[wire\:id] {
  display: none;
}

Skipped (not parse_partial)

database/sql/world.sql — extract parse timeout (large world-cities dump). Not indexed at all.

Expected

  • Ignore compiled Blade (storage/framework/views) and vendor SCSS copies unless opted in.
  • Recover (or precisely diagnose) Blade @error/@if in HTML attributes, @pushonce, @vite, Alpine @entangle/@click, <livewire:…/>, {!! !!}, dotted <x-ns.comp> tags.
  • Detect or skip mis-extended files (.blad.php, JSON-as-.php, bash-as-.ps1 / php.ini) without a dense per-line spray.
  • Parse nested Sass #{"#{…}"} inside calc(), or mark as unsupported-syntax once.

Actual

Indexing succeeds (status: ready). 294 files record parse_partial, so graph completeness for views/SCSS is uncertain. Coverage note matches: files were indexed, constructs in flagged ranges may be missing.

Reproduction

  1. Index a Laravel 11 + Blade + Livewire + Vuexy-style SCSS tree (or the snippets above in a tiny fixture repo).
  2. codebase-memory-mcp cli --json index_status '{"project":"<name>"}'
  3. Observe parse_partial.count on Blade, compiled views, nested SCSS calc(), and mis-extended files.

Impact

Low–medium: the coverage signal works; most hits are compiled views + vendor SCSS + Blade HTML hybrids. Filing per the tool's indexing-gap prompt. PHP application classes under app/ / Modules/*/app were not the bulk of the gap.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingeditor/integrationEditor compatibility and CLI integrationparsing/qualityGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.stability/performanceServer crashes, OOM, hangs, high CPU/memory

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions