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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    editor/integrationEditor compatibility and CLI integrationparsing/qualityGraph extraction bugs, false positives, missing edgesstability/performanceServer crashes, OOM, hangs, high CPU/memorywindowsWindows-specific issues

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions